diff --git a/docs/reference/gobject/gobject-sections.txt b/docs/reference/gobject/gobject-sections.txt index 81db1b576..bed38e4c5 100644 --- a/docs/reference/gobject/gobject-sections.txt +++ b/docs/reference/gobject/gobject-sections.txt @@ -65,7 +65,6 @@ g_type_default_interface_unref g_type_children g_type_interfaces g_type_interface_prerequisites -g_type_interface_instantiable_prerequisite g_type_set_qdata g_type_get_qdata g_type_query diff --git a/gobject/gclosure.c b/gobject/gclosure.c index 601dab1fd..472f037e2 100644 --- a/gobject/gclosure.c +++ b/gobject/gclosure.c @@ -1258,12 +1258,8 @@ static void value_from_ffi_type (GValue *gvalue, gpointer *value) { ffi_arg *int_val = (ffi_arg*) value; - GType type; - type = G_VALUE_TYPE (gvalue); - -restart: - switch (g_type_fundamental (type)) + switch (g_type_fundamental (G_VALUE_TYPE (gvalue))) { case G_TYPE_INT: g_value_set_int (gvalue, (gint) *int_val); @@ -1322,15 +1318,9 @@ restart: case G_TYPE_VARIANT: g_value_take_variant (gvalue, *(gpointer*)value); break; - case G_TYPE_INTERFACE: - type = g_type_interface_instantiable_prerequisite (G_VALUE_TYPE (gvalue)); - if (type) - goto restart; - G_GNUC_FALLTHROUGH; default: - g_warning ("value_from_ffi_type: Unsupported fundamental type %s for type %s", - g_type_name (g_type_fundamental (G_VALUE_TYPE (gvalue))), - g_type_name (G_VALUE_TYPE (gvalue))); + g_warning ("value_from_ffi_type: Unsupported fundamental type: %s", + g_type_name (g_type_fundamental (G_VALUE_TYPE (gvalue)))); } } diff --git a/gobject/gtype.c b/gobject/gtype.c index 94b3667bc..b5ef2d11e 100644 --- a/gobject/gtype.c +++ b/gobject/gtype.c @@ -1689,51 +1689,6 @@ g_type_interface_prerequisites (GType interface_type, } } -/** - * g_type_interface_instantiable_prerequisite: - * @interface_type: an interface type - * - * Returns the instantiable prerequisite of an interface type. - * - * If the interface type has no instantiable prerequisite, 0 is returned. - * - * Since: 2.64 - * - * Returns: the instantiable prerequisite type or 0 if none - **/ -GType -g_type_interface_instantiable_prerequisite (GType interface_type) -{ - TypeNode *inode = NULL; - TypeNode *iface; - guint i; - - g_return_val_if_fail (G_TYPE_IS_INTERFACE (interface_type), G_TYPE_INVALID); - - iface = lookup_type_node_I (interface_type); - if (iface == NULL) - return 0; - - G_READ_LOCK (&type_rw_lock); - - for (i = 0; i < IFACE_NODE_N_PREREQUISITES (iface); i++) - { - GType prerequisite = IFACE_NODE_PREREQUISITES (iface)[i]; - TypeNode *node = lookup_type_node_I (prerequisite); - if (node->is_instantiatable) - { - if (!inode || type_node_is_a_L (node, inode)) - inode = node; - } - } - - G_READ_UNLOCK (&type_rw_lock); - - if (inode) - return NODE_TYPE (inode); - else - return 0; -} static IFaceHolder* type_iface_peek_holder_L (TypeNode *iface, @@ -3452,7 +3407,7 @@ g_type_depth (GType type) * @root_type: immediate parent of the returned type * * Given a @leaf_type and a @root_type which is contained in its - * ancestry, return the type that @root_type is the immediate parent + * anchestry, return the type that @root_type is the immediate parent * of. In other words, this function determines the type that is * derived directly from @root_type which is also a base class of * @leaf_type. Given a root type and a leaf type, this function can diff --git a/gobject/gtype.h b/gobject/gtype.h index b092f7f2b..797ab48ee 100644 --- a/gobject/gtype.h +++ b/gobject/gtype.h @@ -1304,9 +1304,6 @@ void g_type_interface_add_prerequisite (GType interface_type, GLIB_AVAILABLE_IN_ALL GType*g_type_interface_prerequisites (GType interface_type, guint *n_prerequisites); -GLIB_AVAILABLE_IN_2_64 -GType g_type_interface_instantiable_prerequisite - (GType interface_type); GLIB_DEPRECATED_IN_2_58 void g_type_class_add_private (gpointer g_class, gsize private_size); diff --git a/gobject/gvalue.c b/gobject/gvalue.c index df7b4ee11..c30501a6b 100644 --- a/gobject/gvalue.c +++ b/gobject/gvalue.c @@ -448,15 +448,6 @@ g_value_init_from_instance (GValue *value, } } -static GType -tranform_lookup_get_parent_type (GType type) -{ - if (g_type_fundamental (type) == G_TYPE_INTERFACE) - return g_type_interface_instantiable_prerequisite (type); - - return g_type_parent (type); -} - static GValueTransform transform_func_lookup (GType src_type, GType dest_type) @@ -479,11 +470,11 @@ transform_func_lookup (GType src_type, g_type_value_table_peek (entry.src_type) == g_type_value_table_peek (src_type)) return e->func; } - entry.dest_type = tranform_lookup_get_parent_type (entry.dest_type); + entry.dest_type = g_type_parent (entry.dest_type); } while (entry.dest_type); - entry.src_type = tranform_lookup_get_parent_type (entry.src_type); + entry.src_type = g_type_parent (entry.src_type); } while (entry.src_type); diff --git a/gobject/tests/type.c b/gobject/tests/type.c index 9ed1806e9..c5db7e992 100644 --- a/gobject/tests/type.c +++ b/gobject/tests/type.c @@ -52,7 +52,6 @@ test_interface_prerequisite (void) g_assert_cmpint (n_prereqs, ==, 2); g_assert (prereqs[0] == bar_get_type ()); g_assert (prereqs[1] == G_TYPE_OBJECT); - g_assert (g_type_interface_instantiable_prerequisite (foo_get_type ()) == G_TYPE_OBJECT); iface = g_type_default_interface_ref (foo_get_type ()); parent = g_type_interface_peek_parent (iface);