diff options
Diffstat (limited to 'recipes/vala/files/0001-Fix-memory-management-for-closures-used-as-signal-ha.patch')
-rw-r--r-- | recipes/vala/files/0001-Fix-memory-management-for-closures-used-as-signal-ha.patch | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/recipes/vala/files/0001-Fix-memory-management-for-closures-used-as-signal-ha.patch b/recipes/vala/files/0001-Fix-memory-management-for-closures-used-as-signal-ha.patch deleted file mode 100644 index 9596b07830..0000000000 --- a/recipes/vala/files/0001-Fix-memory-management-for-closures-used-as-signal-ha.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 7e192cd797d8f950ee35082863e01d455192d9f2 Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?J=C3=BCrg=20Billeter?= <j@bitron.ch> -Date: Fri, 2 Oct 2009 21:50:28 +0200 -Subject: [PATCH] Fix memory management for closures used as signal handlers - -Fixes bug 597155. ---- - tests/Makefile.am | 1 + - tests/objects/bug597155.vala | 16 ++++++++++++++++ - vala/valasignaltype.vala | 4 +++- - 3 files changed, 20 insertions(+), 1 deletions(-) - -diff --git a/tests/Makefile.am b/tests/Makefile.am -index e510669..2696259 100644 ---- a/tests/Makefile.am -+++ b/tests/Makefile.am -@@ -52,6 +52,7 @@ TESTS = \ - objects/test-034.vala \ - objects/bug593260.vala \ - objects/bug596621.vala \ -+ objects/bug597155.vala \ - errors/errors.vala \ - errors/bug579101.vala \ - errors/bug596228.vala \ -diff --git a/tests/objects/bug597155.vala b/tests/objects/bug597155.vala -new file mode 100644 -index 0000000..c6a6283 ---- /dev/null -+++ b/tests/objects/bug597155.vala -@@ -0,0 +1,16 @@ -+class Foo : Object { -+ public signal void bar (); -+} -+ -+Foo do_foo () { -+ var foo = new Foo (); -+ foo.bar.connect (() => { -+ assert (foo is Foo); -+ }); -+ return foo; -+} -+ -+void main () { -+ var foo = do_foo (); -+ foo.bar (); -+} -diff --git a/vala/valasignaltype.vala b/vala/valasignaltype.vala -index 19430a8..b7e3b84 100644 ---- a/vala/valasignaltype.vala -+++ b/vala/valasignaltype.vala -@@ -62,7 +62,9 @@ public class Vala.SignalType : DataType { - - DelegateType get_handler_type () { - var sender_type = new ObjectType ((ObjectTypeSymbol) signal_symbol.parent_symbol); -- return new DelegateType (signal_symbol.get_delegate (sender_type, this)); -+ var result = new DelegateType (signal_symbol.get_delegate (sender_type, this)); -+ result.value_owned = true; -+ return result; - } - - Method get_connect_method () { --- -1.6.0.4 - |