diff options
author | Tim Janik <timj@gtk.org> | 2000-05-19 08:22:39 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 2000-05-19 08:22:39 +0000 |
commit | 9ce7ba8df80004e96308b542d934052f6d3932cb (patch) | |
tree | ef10b4791eb139c9f9d0ba7ab1e2c4570f43e280 /gtk/gtksignal.c | |
parent | 719f258bc63f1a2c26572f89541ffd910f71281a (diff) | |
download | gtk+-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.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gtk/gtksignal.c b/gtk/gtksignal.c index da6cedd6fa..47902f7175 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); + } } } |