From: Matthias Clasen Date: Fri, 26 Dec 2003 00:36:56 +0000 (+0000) Subject: Don't acquire a read lock here. (#106433, Owen Taylor) X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=07cbd50ea880c7d4f0221d171cf8f91d253e51f7;p=dana%2Fcg-glib.git Don't acquire a read lock here. (#106433, Owen Taylor) Fri Dec 26 01:34:01 2003 Matthias Clasen * gtype.c (g_type_class_peek_parent): Don't acquire a read lock here. (#106433, Owen Taylor) --- diff --git a/gobject/ChangeLog b/gobject/ChangeLog index c9897aed..92343421 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,3 +1,8 @@ +Fri Dec 26 01:34:01 2003 Matthias Clasen + + * gtype.c (g_type_class_peek_parent): Don't acquire a read lock + here. (#106433, Owen Taylor) + Wed Dec 17 23:29:17 2003 Matthias Clasen * gvalue.c (g_value_peek_pointer): Use g_assert() instead of diff --git a/gobject/gtype.c b/gobject/gtype.c index bce1ad04..12fb2839 100644 --- a/gobject/gtype.c +++ b/gobject/gtype.c @@ -2490,7 +2490,10 @@ g_type_class_peek_parent (gpointer g_class) g_return_val_if_fail (g_class != NULL, NULL); node = lookup_type_node_I (G_TYPE_FROM_CLASS (g_class)); - G_READ_LOCK (&type_rw_lock); + /* We used to acquire a read lock here. That is not necessary, since + * parent->data->class.class is constant as long as the derived class + * exists. + */ if (node && node->is_classed && node->data && NODE_PARENT_TYPE (node)) { node = lookup_type_node_I (NODE_PARENT_TYPE (node)); @@ -2498,7 +2501,6 @@ g_type_class_peek_parent (gpointer g_class) } else if (NODE_PARENT_TYPE (node)) g_warning (G_STRLOC ": invalid class pointer `%p'", g_class); - G_READ_UNLOCK (&type_rw_lock); return class; }