Free local variables when throwing error, fixes bug 538520
authorJürg Billeter <j@bitron.ch>
Sun, 15 Jun 2008 23:06:39 +0000 (23:06 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Sun, 15 Jun 2008 23:06:39 +0000 (23:06 +0000)
2008-06-16  Jürg Billeter  <j@bitron.ch>

* gobject/valaccodegenerator.vala:

Free local variables when throwing error, fixes bug 538520

svn path=/trunk/; revision=1596

ChangeLog
gobject/valaccodegenerator.vala

index eda4fcb..84f365b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2008-06-16  Jürg Billeter  <j@bitron.ch>
 
+       * gobject/valaccodegenerator.vala:
+
+       Free local variables when throwing error, fixes bug 538520
+
+2008-06-16  Jürg Billeter  <j@bitron.ch>
+
        * vapi/Makefile.am:
        * vapi/sdl-net.vapi:
 
index 4eb0823..683eaaf 100644 (file)
@@ -1645,6 +1645,11 @@ public class Vala.CCodeGenerator : CodeGenerator {
                        var cerror_block = new CCodeBlock ();
                        cerror_block.add_statement (new CCodeExpressionStatement (cpropagate));
 
+                       // free local variables
+                       var free_frag = new CCodeFragment ();
+                       append_local_free (current_symbol, free_frag, false);
+                       cerror_block.add_statement (free_frag);
+
                        if (current_return_type is VoidType) {
                                cerror_block.add_statement (new CCodeReturnStatement ());
                        } else {