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.6.1~30 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=14adcb0d7b9678fbba93c4ae875606c291cc6761;p=thirdparty%2Fvala.git Free local variables in GObject constructors Fixes bug 577641. --- diff --git a/gobject/valaccodemethodmodule.vala b/gobject/valaccodemethodmodule.vala index 5096111d7..fee4a4c7b 100644 --- a/gobject/valaccodemethodmodule.vala +++ b/gobject/valaccodemethodmodule.vala @@ -231,7 +231,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; }