g_type_default_interface_ref() was not ensuring working g_signal_list_ids.

2007-08-14  Cody Russell  <bratsche@gnome.org>

        * gobject/gsignal.c: g_type_default_interface_ref() was not
        ensuring working g_signal_list_ids.  Added checks for
        !G_TYPE_IS_INTERFACE (itype).                          
        (#465625, by some guy who calls himself Yeti)


svn path=/trunk/; revision=5704
This commit is contained in:
Cody Russell 2007-08-14 22:55:23 +00:00 committed by Cody Russell
parent 4c3720264c
commit edf4c17165
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2007-08-14 Cody Russell <bratsche@gnome.org>
* gobject/gsignal.c: g_type_default_interface_ref() was not
ensuring working g_signal_list_ids. Added checks for
!G_TYPE_IS_INTERFACE (itype).
(#465625, by some guy who calls himself Yeti)
Tue Aug 14 02:06:10 2007 Tim Janik <timj@imendio.com> Tue Aug 14 02:06:10 2007 Tim Janik <timj@imendio.com>
* glib/gthread.c (g_once_init_enter_impl): prevent race covered * glib/gthread.c (g_once_init_enter_impl): prevent race covered

View File

@ -1058,10 +1058,10 @@ g_signal_list_ids (GType itype,
if (!g_type_name (itype)) if (!g_type_name (itype))
g_warning (G_STRLOC ": unable to list signals for invalid type id `%lu'", g_warning (G_STRLOC ": unable to list signals for invalid type id `%lu'",
itype); itype);
else if (!G_TYPE_IS_INSTANTIATABLE (itype)) else if (!G_TYPE_IS_INSTANTIATABLE (itype) && !G_TYPE_IS_INTERFACE (itype))
g_warning (G_STRLOC ": unable to list signals of non instantiatable type `%s'", g_warning (G_STRLOC ": unable to list signals of non instantiatable type `%s'",
g_type_name (itype)); g_type_name (itype));
else if (!g_type_class_peek (itype)) else if (!g_type_class_peek (itype) && !G_TYPE_IS_INTERFACE (itype))
g_warning (G_STRLOC ": unable to list signals of unloaded type `%s'", g_warning (G_STRLOC ": unable to list signals of unloaded type `%s'",
g_type_name (itype)); g_type_name (itype));
} }