From: Jürg Billeter Date: Fri, 2 Jul 2010 17:41:25 +0000 (+0200) Subject: dova: Fix closures in constructors X-Git-Tag: 0.9.3~47 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7ed98ee831ac2cb800d9ed7cc22fcdac999d3542;p=thirdparty%2Fvala.git dova: Fix closures in constructors --- diff --git a/codegen/valadovabasemodule.vala b/codegen/valadovabasemodule.vala index a5888f0ff..01ea90f79 100644 --- a/codegen/valadovabasemodule.vala +++ b/codegen/valadovabasemodule.vala @@ -776,8 +776,7 @@ internal class Vala.DovaBaseModule : CCodeModule { ref_call.add_argument (get_variable_cexpression ("_data%d_".printf (parent_block_id))); cblock.add_statement (new CCodeExpressionStatement (new CCodeAssignment (new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (block_id)), "_data%d_".printf (parent_block_id)), ref_call))); - } else if ((current_method != null && current_method.binding == MemberBinding.INSTANCE && - (!(current_method is CreationMethod) || current_method.body != b)) || + } else if ((current_method != null && current_method.binding == MemberBinding.INSTANCE) || (current_property_accessor != null && current_property_accessor.prop.binding == MemberBinding.INSTANCE)) { var ref_call = new CCodeFunctionCall (get_dup_func_expression (new ObjectType (current_class), b.source_reference)); ref_call.add_argument (new CCodeIdentifier ("this"));