]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
use separate temp_vars list for lambda expressions to prevent mixup in the
authorJuerg Billeter <j@bitron.ch>
Sat, 12 Jan 2008 13:16:09 +0000 (13:16 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Sat, 12 Jan 2008 13:16:09 +0000 (13:16 +0000)
2008-01-12  Juerg Billeter  <j@bitron.ch>

* gobject/valaccodegenerator.vala: use separate temp_vars list for
  lambda expressions to prevent mixup in the C code

svn path=/trunk/; revision=834

ChangeLog
gobject/valaccodegenerator.vala

index 6e0e608c4fb6b8fc3725e04594696c8ea8874477..c13e5eeecf63a0355bcbefe3a280e04843a76033 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-12  Jürg Billeter  <j@bitron.ch>
+
+       * gobject/valaccodegenerator.vala: use separate temp_vars list for
+         lambda expressions to prevent mixup in the C code
+
 2008-01-12  Jürg Billeter  <j@bitron.ch>
 
        * vala/valasemanticanalyzer.vala: restore current_return_type
index 82c0b9ae91fa7b3eb9e1f4200b25b6d6cda65ed8..041a110c7817e7e1441d52ea160af062923f9eca 100644 (file)
@@ -2670,8 +2670,16 @@ public class Vala.CCodeGenerator : CodeGenerator {
        }
 
        public override void visit_lambda_expression (LambdaExpression! l) {
+               var old_temp_vars = temp_vars;
+               var old_temp_ref_vars = temp_ref_vars;
+               temp_vars = new ArrayList<VariableDeclarator> ();
+               temp_ref_vars = new ArrayList<VariableDeclarator> ();
+
                l.accept_children (this);
 
+               temp_vars = old_temp_vars;
+               temp_ref_vars = old_temp_ref_vars;
+
                l.ccodenode = new CCodeIdentifier (l.method.get_cname ());
        }