]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix reference counting for non-GObject interfaces
authorJuerg Billeter <j@bitron.ch>
Thu, 29 May 2008 15:01:47 +0000 (15:01 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Thu, 29 May 2008 15:01:47 +0000 (15:01 +0000)
2008-05-29  Juerg Billeter  <j@bitron.ch>

* vala/valainterface.vala:

Fix reference counting for non-GObject interfaces

svn path=/trunk/; revision=1483

ChangeLog
vala/valainterface.vala

index e66cad5ee57d920b94f3a9ab876cf26af50e5559..0ee87f39345a3beab7045dc73d79da83bd5fe574 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-05-29  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valainterface.vala:
+
+       Fix reference counting for non-GObject interfaces
+
 2008-05-29  Jürg Billeter  <j@bitron.ch>
 
        * gobject/valaccodeclassbinding.vala:
index f386d3fb70adbb9e2bb2faa48a4cb8c24dce8af0..e8931a33b86597291b19a5e2c6e9f68c8c1971b4 100644 (file)
@@ -369,11 +369,23 @@ public class Vala.Interface : ObjectTypeSymbol {
        }
        
        public override string? get_ref_function () {
-               return "g_object_ref";
+               foreach (DataType prerequisite in prerequisites) {
+                       string ref_func = prerequisite.data_type.get_ref_function ();
+                       if (ref_func != null) {
+                               return ref_func;
+                       }
+               }
+               return null;
        }
        
        public override string? get_unref_function () {
-               return "g_object_unref";
+               foreach (DataType prerequisite in prerequisites) {
+                       string unref_func = prerequisite.data_type.get_unref_function ();
+                       if (unref_func != null) {
+                               return unref_func;
+                       }
+               }
+               return null;
        }
 
        public override bool is_subtype_of (TypeSymbol t) {