From: Jürg Billeter Date: Tue, 22 Sep 2009 06:57:37 +0000 (+0200) Subject: Fix leak when calling methods with unowned delegate parameters X-Git-Tag: 0.7.7~55 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9dc52c1a97cf872e1c4d9c0730d3dd7b3b3a2e46;p=thirdparty%2Fvala.git Fix leak when calling methods with unowned delegate parameters Fixes bug 595879. --- diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala index eb91e2d03..52e0fc6f1 100644 --- a/codegen/valaccodedelegatemodule.vala +++ b/codegen/valaccodedelegatemodule.vala @@ -292,7 +292,7 @@ internal class Vala.CCodeDelegateModule : CCodeArrayModule { return new CCodeIdentifier ("data"); } else { var delegate_target = (CCodeExpression) get_ccodenode (ma.inner); - if (ma.inner.value_type.data_type != null && ma.inner.value_type.data_type.is_reference_counting ()) { + if (expr_owned && ma.inner.value_type.data_type != null && ma.inner.value_type.data_type.is_reference_counting ()) { var ref_call = new CCodeFunctionCall (get_dup_func_expression (ma.inner.value_type, delegate_expr.source_reference)); ref_call.add_argument (delegate_target); delegate_target = ref_call;