]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
codegen: Fix regression when setting delegate properties
authorLuca Bruno <lucabru@src.gnome.org>
Wed, 22 Jun 2011 06:40:45 +0000 (08:40 +0200)
committerLuca Bruno <lucabru@src.gnome.org>
Wed, 22 Jun 2011 06:43:10 +0000 (08:43 +0200)
The regression was introduced by 1e90d53dba0eff6ec2b.

Fixes bug 653138.

codegen/valaccodebasemodule.vala
tests/Makefile.am
tests/objects/bug653138.vala [new file with mode: 0644]

index dffd20ec01c877f8b96bcebac677ec57c2cea6cb..9f4a13a0bf70f5e80d82dc3636bc6807f963575a 100644 (file)
@@ -5394,7 +5394,7 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator {
                        var delegate_type = (DelegateType) prop.property_type;
                        if (delegate_type.delegate_symbol.has_target) {
                                ccall.add_argument (get_delegate_target_cvalue (value));
-                               if (delegate_type.value_owned) {
+                               if (base_property.set_accessor.value_type.value_owned) {
                                        ccall.add_argument (get_delegate_target_destroy_notify_cvalue (value));
                                }
                        }
index 9819401e161a89d524bbd366711a2d5a97c4d859..dec5ed9f3dca50e21842de6d9f0bc6104e387c07 100644 (file)
@@ -91,6 +91,7 @@ TESTS = \
        objects/bug628639.vala \
        objects/bug642809.vala \
        objects/bug643711.vala \
+       objects/bug653138.vala \
        errors/errors.vala \
        errors/bug567181.vala \
        errors/bug579101.vala \
diff --git a/tests/objects/bug653138.vala b/tests/objects/bug653138.vala
new file mode 100644 (file)
index 0000000..75434a2
--- /dev/null
@@ -0,0 +1,10 @@
+public class Foo {
+       public SourceFunc foo { private set; get; }
+
+       public void bar () {
+               foo = null;
+       }
+}
+
+void main() {
+}