summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Russell <bratsche@gnome.org>2007-08-14 22:55:23 +0000
committerCody Russell <bratsche@src.gnome.org>2007-08-14 22:55:23 +0000
commitedf4c171650ae713115235c678571e8900d4c9b8 (patch)
tree5897e70c5545bfc3a60b7e98186531f3acd659f5
parent4c3720264cf8390977228a8dfd795b070ef4b7e5 (diff)
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
-rw-r--r--ChangeLog7
-rw-r--r--gobject/gsignal.c4
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 37295d5bd..13e200e6e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
* glib/gthread.c (g_once_init_enter_impl): prevent race covered
diff --git a/gobject/gsignal.c b/gobject/gsignal.c
index c65565ae2..8ce1b6c6a 100644
--- a/gobject/gsignal.c
+++ b/gobject/gsignal.c
@@ -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));
}