summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Guthrie <cguthrie@mandriva.org>2009-10-15 20:31:12 +0100
committerColin Guthrie <cguthrie@mandriva.org>2009-10-15 20:31:12 +0100
commit5a52d204fb95f2735596b6e7e1a66fe7b4aa155d (patch)
tree54814cc22315f33794547983c9e97414a9688c85
parent9406fef93e99e995b2d3fafd2ff91d64545370e7 (diff)
gtk: Do not dereference a null window.
Fixes GLib-GObject-CRITICAL **: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
-rw-r--r--src/canberra-gtk-module.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/canberra-gtk-module.c b/src/canberra-gtk-module.c
index 1cb04bd..7a9595f 100644
--- a/src/canberra-gtk-module.c
+++ b/src/canberra-gtk-module.c
@@ -396,8 +396,12 @@ static void dispatch_sound_event(SoundEventData *d) {
* event was queued for us. Make sure to update it from the
* current one if necessary. */
if (d->event && d->event->any.window) {
+ GtkWindow *window;
g_object_unref(d->event->any.window);
- d->event->any.window = g_object_ref(G_OBJECT(gtk_widget_get_window(GTK_WIDGET(d->object))));
+ if ((window = gtk_widget_get_window(GTK_WIDGET(d->object))))
+ d->event->any.window = g_object_ref(G_OBJECT(window));
+ else
+ d->event->any.window = NULL;
}
if (d->signal_id == signal_id_widget_show) {