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 e66cad5..0ee87f3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 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:
        * gobject/valaccodegenerator.vala:
        * gobject/valaccodemethodbinding.vala:
index f386d3f..e8931a3 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) {