]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix leak when calling methods with unowned delegate parameters
authorJürg Billeter <j@bitron.ch>
Tue, 22 Sep 2009 06:57:37 +0000 (08:57 +0200)
committerJürg Billeter <j@bitron.ch>
Tue, 22 Sep 2009 06:59:21 +0000 (08:59 +0200)
Fixes bug 595879.

codegen/valaccodedelegatemodule.vala

index eb91e2d037b1cdf7d767b7e2b32f7bd35af9aaee..52e0fc6f133628867baa911e730b3be17c0a4a7d 100644 (file)
@@ -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;