From: Juerg Billeter Date: Thu, 29 May 2008 15:01:47 +0000 (+0000) Subject: Fix reference counting for non-GObject interfaces X-Git-Tag: VALA_0_3_3~75 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5f1e387cbdb499fceedfd5fa20ecd20916fa9f9f;p=thirdparty%2Fvala.git Fix reference counting for non-GObject interfaces 2008-05-29 Juerg Billeter * vala/valainterface.vala: Fix reference counting for non-GObject interfaces svn path=/trunk/; revision=1483 --- diff --git a/ChangeLog b/ChangeLog index e66cad5ee..0ee87f393 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-05-29 Jürg Billeter + + * vala/valainterface.vala: + + Fix reference counting for non-GObject interfaces + 2008-05-29 Jürg Billeter * gobject/valaccodeclassbinding.vala: diff --git a/vala/valainterface.vala b/vala/valainterface.vala index f386d3fb7..e8931a33b 100644 --- a/vala/valainterface.vala +++ b/vala/valainterface.vala @@ -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) {