From: Jürg Billeter Date: Tue, 27 Apr 2010 08:33:32 +0000 (+0200) Subject: Fix generated code when mixing closures and simple lambda expressions X-Git-Tag: 0.9.1~123 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f42d709c4f1fe0abc57a1d7802eae804507c8483;p=thirdparty%2Fvala.git Fix generated code when mixing closures and simple lambda expressions Fixes bug 615444. --- diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala index 9a0c544e6..b04ceee89 100644 --- a/codegen/valaccodedelegatemodule.vala +++ b/codegen/valaccodedelegatemodule.vala @@ -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)));