From: Jürg Billeter Date: Wed, 1 Apr 2009 20:08:31 +0000 (+0200) Subject: Free local variables in GObject constructors X-Git-Tag: 0.7.0~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=17f120e67e71eea5716984e554505f5370f971ee;p=thirdparty%2Fvala.git Free local variables in GObject constructors Fixes bug 577641. --- diff --git a/gobject/valaccodemethodmodule.vala b/gobject/valaccodemethodmodule.vala index 2a2fd306f..bac46ec2b 100644 --- a/gobject/valaccodemethodmodule.vala +++ b/gobject/valaccodemethodmodule.vala @@ -269,7 +269,15 @@ internal class Vala.CCodeMethodModule : CCodeStructModule { cblock.add_statement (stmt.ccodenode); } } - + + foreach (LocalVariable local in m.body.get_local_variables ()) { + if (!local.floating && requires_destroy (local.variable_type)) { + var ma = new MemberAccess.simple (local.name); + ma.symbol_reference = local; + cblock.add_statement (new CCodeExpressionStatement (get_unref_expression (get_variable_cexpression (local.name), local.variable_type, ma))); + } + } + m.body.ccodenode = cblock; }