From f72930beef9efdc49b1016829c3ee50606a76fc4 Mon Sep 17 00:00:00 2001 From: Nathan Braswell Date: Sun, 31 Jan 2016 00:10:54 -0500 Subject: [PATCH] Also destruct parameters after copy_constructing them --- stdlib/c_generator.krak | 3 +++ 1 file changed, 3 insertions(+) diff --git a/stdlib/c_generator.krak b/stdlib/c_generator.krak index 18c0828..469a476 100644 --- a/stdlib/c_generator.krak +++ b/stdlib/c_generator.krak @@ -336,6 +336,9 @@ obj c_generator (Object) { call_string.pre = generate_declaration_statement(declaration, enclosing_object, null>>>(), false).one_string() + ";\n" call_string.pre += generate_statement(ast_statement_ptr(make_method_call(temp_ident, "copy_construct", vector(make_operator_call("&", vector(param))))), enclosing_object, null>>>()).one_string() call_string += generate(temp_ident, enclosing_object, null>>>()) + if (has_method(param_type->type_def, "destruct", vector<*type>())) { + call_string.post += generate_statement(ast_statement_ptr(make_method_call(temp_ident, "destruct", vector<*ast_node>())), enclosing_object, null>>>()).one_string() + } } else { call_string += generate(param, enclosing_object, null>>>()) }