@x: text to convert to a literal string.
+<!-- ##### FUNCTION g_tree_lookup_extended ##### -->
+<para>
+Gets the original key and the associated value and a gboolean which is
+TRUE if the key was found. This is useful if you need to free the memory
+allocated for the original key, for example before calling g_tree_remove().
+Since a #GTree is automatically balanced as key/value pairs are added,
+key lookup is very fast.
+</para>
+
+@tree: a #GTree.
+@lookup_key: the key to look up.
+@orig_key: returns the original key.
+@value: returns the value associated with the key.
+@Returns: TRUE if the key was found in the #GTree.
+
<!-- ##### MACRO getcwd ##### -->
<para>
@Returns: the value corresponding to the key.
-<!-- ##### FUNCTION g_tree_lookup_extended ##### -->
-<para>
-Gets the original key and the associated value and a gboolean which is
-TRUE if the key was found. This is useful if you need to free the memory
-allocated for the original key, for example before calling g_tree_remove().
-Since a #GTree is automatically balanced as key/value pairs are added,
-key lookup is very fast.
-</para>
-
-@tree: a #GTree.
-@lookup_key: the key to look up.
-@orig_key: returns the original key.
-@value: returns the value associated with the key.
-@Returns: TRUE if the key was found in the #GTree.
-
-
<!-- ##### FUNCTION g_tree_search ##### -->
<para>
Searches a #GTree using an alternative form of the comparison function.
+Fri Mar 9 10:14:00 2001 Tim Janik <timj@gtk.org>
+
+ * gparamspecs.c (g_param_spec_object): use g_type_is_a() to check
+ for object_type being a G_TYPE_OBJECT, not G_TYPE_IS_OBJECT(), since
+ that wouldn't allow interface types.
+
+ * gtype.c (g_type_interface_add_prerequisite): arg, fixed small cnp bug
+ with bad implications and an off-by-one error.
+
Thu Mar 8 16:34:22 2001 Owen Taylor <otaylor@redhat.com>
* gvaluetransform.c: Include <string.h> for memcpy.
{
GParamSpecObject *ospec;
- g_return_val_if_fail (G_TYPE_IS_OBJECT (object_type), NULL);
+ g_return_val_if_fail (g_type_is_a (object_type, G_TYPE_OBJECT), NULL);
ospec = g_param_spec_internal (G_TYPE_PARAM_OBJECT,
name,
G_WRITE_LOCK (&type_rw_lock);
iface = lookup_type_node_L (interface_type);
- prerequisite_node = lookup_type_node_L (interface_type);
+ prerequisite_node = lookup_type_node_L (prerequisite_type);
if (!iface || !prerequisite_node || !NODE_IS_IFACE (iface))
{
g_warning ("interface type `%s' or prerequisite type `%s' invalid",
{
guint i;
- for (i = 0; i < prerequisite_node->n_supers; i++)
+ for (i = 0; i < prerequisite_node->n_supers + 1; i++)
type_iface_add_prerequisite_W (iface, lookup_type_node_L (prerequisite_node->supers[i]));
}
else if (NODE_IS_IFACE (prerequisite_node))