]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
TypeInstance and TypeClass are the base of them all
authorRico Tzschichholz <ricotz@ubuntu.com>
Sat, 21 Sep 2019 08:25:38 +0000 (10:25 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Tue, 30 Nov 2021 16:39:37 +0000 (17:39 +0100)
vapi/gobject-2.0.vapi
vapi/metadata/GObject-2.0-custom.vala
vapi/metadata/GObject-2.0.metadata

index 587f70339ba5ef33804b03dc3a7d97933a3699ea..ef72a25d84c5eec5a9b385413938305abab7522e 100644 (file)
@@ -121,7 +121,7 @@ namespace GLib {
                protected InitiallyUnowned ();
        }
        [CCode (cheader_filename = "glib-object.h", get_value_function = "g_value_get_object", marshaller_type_name = "OBJECT", param_spec_function = "g_param_spec_object", ref_function = "g_object_ref", set_value_function = "g_value_set_object", take_value_function = "g_value_take_object", type_id = "g_object_get_type ()", unref_function = "g_object_unref")]
-       public class Object {
+       public class Object : GLib.TypeInstance {
                public GLib.TypeInstance g_type_instance;
                public GLib.Datalist qdata;
                public uint ref_count;
@@ -453,9 +453,10 @@ namespace GLib {
                public ParamSpecVariant (string name, string nick, string blurb, GLib.VariantType type, owned GLib.Variant? default_value, GLib.ParamFlags flags);
        }
        [CCode (cheader_filename = "glib-object.h", has_type_id = false)]
-       [Compact]
-       public class TypeClass {
+       public abstract class TypeClass {
                public GLib.Type g_type;
+               [CCode (has_construct_function = false)]
+               protected TypeClass ();
                [CCode (cname = "g_type_class_add_private")]
                [Version (deprecated = true, deprecated_since = "2.58", since = "2.4")]
                public void add_private (size_t private_size);
@@ -471,6 +472,14 @@ namespace GLib {
                [CCode (cname = "g_type_class_unref_uncached")]
                public void unref_uncached ();
        }
+       [CCode (cheader_filename = "glib-object.h", has_type_id = false)]
+       public abstract class TypeInstance {
+               public GLib.TypeClass g_class;
+               [CCode (has_construct_function = false)]
+               protected TypeInstance ();
+               [CCode (cname = "g_type_instance_get_private")]
+               public void* get_private (GLib.Type private_type);
+       }
        [CCode (cheader_filename = "glib-object.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "g_value_array_get_type ()")]
        [Compact]
        public class ValueArray {
@@ -629,7 +638,7 @@ namespace GLib {
                public static unowned GLib.TypeClass check_class_cast (GLib.TypeClass g_class, GLib.Type is_a_type);
                public static bool check_class_is_a (GLib.TypeClass g_class, GLib.Type is_a_type);
                public static bool check_instance (GLib.TypeInstance instance);
-               public static unowned GLib.TypeInstance? check_instance_cast (GLib.TypeInstance instance, GLib.Type iface_type);
+               public static unowned GLib.TypeInstance check_instance_cast (GLib.TypeInstance instance, GLib.Type iface_type);
                public static bool check_instance_is_a (GLib.TypeInstance instance, GLib.Type iface_type);
                public static bool check_instance_is_fundamentally_a (GLib.TypeInstance instance, GLib.Type fundamental_type);
                public static bool check_is_value_type (GLib.Type type);
@@ -642,7 +651,7 @@ namespace GLib {
                [Version (since = "2.4")]
                public static unowned GLib.TypeClass class_peek_static (GLib.Type type);
                public static unowned GLib.TypeClass class_ref (GLib.Type type);
-               public static unowned GLib.TypeInstance? create_instance (GLib.Type type);
+               public static unowned GLib.TypeInstance create_instance (GLib.Type type);
                [Version (since = "2.4")]
                public static unowned GLib.TypeInterface? default_interface_peek (GLib.Type g_type);
                [Version (since = "2.4")]
@@ -717,12 +726,6 @@ namespace GLib {
                public GLib.TypeValueTable value_table;
        }
        [CCode (cheader_filename = "glib-object.h", has_type_id = false)]
-       public struct TypeInstance {
-               public weak GLib.TypeClass g_class;
-               [CCode (cname = "g_type_instance_get_private")]
-               public void* get_private (GLib.Type private_type);
-       }
-       [CCode (cheader_filename = "glib-object.h", has_type_id = false)]
        public struct TypeInterface {
                public GLib.Type g_type;
                public GLib.Type g_instance_type;
index 01e60df3e7a86752defaed17ac8f0971b9ab7a47..3540ab98815945097e5a7628ee8756f941362c3b 100644 (file)
@@ -1,6 +1,6 @@
 namespace GLib {
        [CCode (cheader_filename = "glib-object.h", get_value_function = "g_value_get_object", marshaller_type_name = "OBJECT", param_spec_function = "g_param_spec_object", ref_function = "g_object_ref", set_value_function = "g_value_set_object", take_value_function = "g_value_take_object", unref_function = "g_object_unref")]
-       public class Object {
+       public class Object : TypeInstance {
        }
 
        [CCode (get_value_function = "g_value_get_param", param_spec_function = "g_param_spec_param", ref_function = "g_param_spec_ref", set_value_function = "g_value_set_param", take_value_function = "g_value_take_param", type_id = "G_TYPE_PARAM", unref_function = "g_param_spec_unref")]
@@ -14,6 +14,14 @@ namespace GLib {
                public weak GLib.EnumClass enum_class;
        }
 
+       [CCode (cheader_filename = "glib-object.h", has_type_id = false)]
+       public abstract class TypeClass {
+       }
+
+       [CCode (cheader_filename = "glib-object.h", has_type_id = false)]
+       public abstract class TypeInstance {
+       }
+
        [CCode (cheader_filename = "glib-object.h", cname = "guint")]
        public struct Signal : uint {
        }
index 52fb5b604e4c9fb0fc9ab28a754c1031c377c188..ff9a1d3af1dd6e2408430264761b1b19b22960f5 100644 (file)
@@ -8,6 +8,11 @@ cclosure_* skip
 signal_type_cclosure_new skip
 VaClosureMarshal skip=false
 
+*.g_class unowned=false
+*.g_type_instance unowned=false
+
+TypeInstance struct=false
+
 Object.get_property#virtual_method skip
 Object.set_property#virtual_method skip
 Object.dispatch_properties_changed skip