From 14adcb0d7b9678fbba93c4ae875606c291cc6761 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrg=20Billeter?= Date: Wed, 1 Apr 2009 22:08:31 +0200 Subject: [PATCH] Free local variables in GObject constructors Fixes bug 577641. --- gobject/valaccodemethodmodule.vala | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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; } -- 2.47.2