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

@@ -1058,10 +1058,10 @@ g_signal_list_ids (GType itype,
if (!g_type_name (itype))
g_warning (G_STRLOC ": unable to list signals for invalid type id `%lu'",
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_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_type_name (itype));
}