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 6e0e608..c13e5ee 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 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
          after processing lambda expressions, fixes bug 501586
 
index 82c0b9a..041a110 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 ());
        }