From: Jürg Billeter Date: Sun, 14 Dec 2008 23:47:17 +0000 (+0000) Subject: Support empty ref_function and unref_function attributes, fix X-Git-Tag: VALA_0_5_3~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78be2505bbd34cd7d39e939f21dd76fd82dadfaa;p=thirdparty%2Fvala.git Support empty ref_function and unref_function attributes, fix 2008-12-15 Jürg Billeter * gobject/valaccodebasemodule.vala: * vapi/glib-2.0.vapi: Support empty ref_function and unref_function attributes, fix GSequenceIter binding svn path=/trunk/; revision=2150 --- diff --git a/ChangeLog b/ChangeLog index 43278472f..366626161 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-12-15 Jürg Billeter + + * gobject/valaccodebasemodule.vala: + * vapi/glib-2.0.vapi: + + Support empty ref_function and unref_function attributes, + fix GSequenceIter binding + 2008-12-15 Jürg Billeter * gobject/valaccodebasemodule.vala: diff --git a/gobject/valaccodebasemodule.vala b/gobject/valaccodebasemodule.vala index 40ceed6fb..2353f60e9 100644 --- a/gobject/valaccodebasemodule.vala +++ b/gobject/valaccodebasemodule.vala @@ -2306,6 +2306,13 @@ public class Vala.CCodeBaseModule : CCodeModule { return false; } + var cl = type.data_type as Class; + if (cl != null && cl.is_reference_counting () + && cl.get_ref_function () == "") { + // empty ref_function => no ref necessary + return false; + } + if (type.type_parameter != null) { if (!(current_type_symbol is Class) || current_class.is_compact) { return false; @@ -2320,6 +2327,13 @@ public class Vala.CCodeBaseModule : CCodeModule { return false; } + var cl = type.data_type as Class; + if (cl != null && cl.is_reference_counting () + && cl.get_unref_function () == "") { + // empty unref_function => no unref necessary + return false; + } + if (type.type_parameter != null) { if (!(current_type_symbol is Class) || current_class.is_compact) { return false; diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi index 5157d6de1..cc3744d22 100644 --- a/vapi/glib-2.0.vapi +++ b/vapi/glib-2.0.vapi @@ -2862,9 +2862,9 @@ namespace GLib { public static SequenceIter range_get_midpoint (SequenceIter begin, SequenceIter end); } - [SimpleType] - [CCode (cname = "GSequenceIter*", type_id = "G_TYPE_POINTER")] - public struct SequenceIter { + [Compact] + [CCode (ref_function = "", unref_function = "")] + public class SequenceIter { public bool is_begin (); public bool is_end (); public SequenceIter next ();