From: Jürg Billeter Date: Sun, 27 Sep 2009 16:27:35 +0000 (+0200) Subject: Free temporary variables used in instance field initializers X-Git-Tag: 0.7.7~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=247b585f2405768477b7f121f2c9f6ed3e1ca267;p=thirdparty%2Fvala.git Free temporary variables used in instance field initializers --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index ed1eb38a6..50fd405a2 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -1030,7 +1030,16 @@ internal class Vala.CCodeBaseModule : CCodeModule { } append_temp_decl (instance_init_fragment, temp_vars); + + foreach (LocalVariable local in temp_ref_vars) { + var ma = new MemberAccess.simple (local.name); + ma.symbol_reference = local; + ma.value_type = local.variable_type.copy (); + instance_init_fragment.append (new CCodeExpressionStatement (get_unref_expression (get_variable_cexpression (local.name), local.variable_type, ma))); + } + temp_vars.clear (); + temp_ref_vars.clear (); } if (requires_destroy (f.field_type) && instance_finalize_fragment != null) {