]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix generated code when mixing closures and simple lambda expressions
authorJürg Billeter <j@bitron.ch>
Tue, 27 Apr 2010 08:33:32 +0000 (10:33 +0200)
committerJürg Billeter <j@bitron.ch>
Tue, 27 Apr 2010 08:33:32 +0000 (10:33 +0200)
Fixes bug 615444.

codegen/valaccodedelegatemodule.vala

index 9a0c544e6c875d010bf284f6af38e62a97c3027f..b04ceee89e47546a94ca9334592e02d1248e5018 100644 (file)
@@ -157,9 +157,9 @@ public class Vala.CCodeDelegateModule : CCodeArrayModule {
                        }
                        return invocation_expr.delegate_target;
                } else if (delegate_expr is LambdaExpression) {
-                       var closure_block = current_closure_block;
-                       if (closure_block != null) {
-                               int block_id = get_block_id (closure_block);
+                       var lambda = (LambdaExpression) delegate_expr;
+                       if (lambda.method.closure) {
+                               int block_id = get_block_id (current_closure_block);
                                var delegate_target = get_variable_cexpression ("_data%d_".printf (block_id));
                                if (expr_owned) {
                                        var ref_call = new CCodeFunctionCall (new CCodeIdentifier ("block%d_data_ref".printf (block_id)));