summaryrefslogtreecommitdiff
path: root/gtk/gtksignal.c
diff options
context:
space:
mode:
authorTim Janik <timj@gtk.org>2000-05-19 08:22:39 +0000
committerTim Janik <timj@src.gnome.org>2000-05-19 08:22:39 +0000
commit9ce7ba8df80004e96308b542d934052f6d3932cb (patch)
treeef10b4791eb139c9f9d0ba7ab1e2c4570f43e280 /gtk/gtksignal.c
parent719f258bc63f1a2c26572f89541ffd910f71281a (diff)
downloadgdk-pixbuf-9ce7ba8df80004e96308b542d934052f6d3932cb.tar.gz
when unref-ing the handlers, also invalidate them. bug nailed down by Karl
Sun Mar 26 03:21:28 2000 Tim Janik <timj@gtk.org> * gtk/gtksignal.c (gtk_signal_handlers_destroy): when unref-ing the handlers, also invalidate them. bug nailed down by Karl Nelson <kenelson@ece.ucdavis.edu>.
Diffstat (limited to 'gtk/gtksignal.c')
-rw-r--r--gtk/gtksignal.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gtk/gtksignal.c b/gtk/gtksignal.c
index da6cedd6f..47902f717 100644
--- a/gtk/gtksignal.c
+++ b/gtk/gtksignal.c
@@ -1195,12 +1195,20 @@ gtk_signal_handlers_destroy (GtkObject *object)
next = handler->next;
if (handler->id > 0)
- gtk_signal_handler_unref (handler, object);
+ {
+ handler->id = 0;
+ handler->blocked += 1;
+ gtk_signal_handler_unref (handler, object);
+ }
handler = next;
}
handler = gtk_object_get_data_by_id (object, gtk_handler_quark);
if (handler->id > 0)
- gtk_signal_handler_unref (handler, object);
+ {
+ handler->id = 0;
+ handler->blocked += 1;
+ gtk_signal_handler_unref (handler, object);
+ }
}
}