When appending handlers and not matching on signal_id, use
authorOwen Taylor <otaylor@redhat.com>
Sun, 5 Nov 2000 15:27:31 +0000 (15:27 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Sun, 5 Nov 2000 15:27:31 +0000 (15:27 +0000)
Sun Nov  5 10:25:40 2000  Owen Taylor  <otaylor@redhat.com>

* gsignal.c (handlers_find): When appending handlers and
not matching on signal_id, use hlist->signal_id instead of
signal_id. Having the correct signal_id when unreffing
the handlers makes things work a lot better.

gobject/ChangeLog
gobject/Makefile.am
gobject/gsignal.c

index d8e671b8b1be0495e0b3cb1036385b4496ec81ae..dd8c8aea186be73c66f11816f24075e0e0abb2bf 100644 (file)
@@ -1,3 +1,10 @@
+Sun Nov  5 10:25:40 2000  Owen Taylor  <otaylor@redhat.com>
+
+       * gsignal.c (handlers_find): When appending handlers and
+       not matching on signal_id, use hlist->signal_id instead of 
+       signal_id. Having the correct signal_id when unreffing
+       the handlers makes things work a lot better.
+
 2000-11-05  Tor Lillqvist  <tml@iki.fi>
 
        * makefile.{mingw,msc}.in (gobject_OBJECTS): Add gtypeplugin.
index 4b8e658c2fbcb74ec69d13b9c3b11362f6ad7495..bf8a8ee12cd8fffeca4c087bd6f2268857a07251 100644 (file)
@@ -33,6 +33,7 @@ gobject_public_h_sources = @STRIP_BEGIN@ \
        gsignal.h \
        gtype.h \
        gtypeplugin.h \
+       gtypepluginsimple.h \
        gvalue.h \
        gvaluecollector.h \
        gvaluetypes.h \
@@ -53,6 +54,7 @@ gobject_c_sources = @STRIP_BEGIN@ \
        gsignal.c \
        gtype.c \
        gtypeplugin.c \
+       gtypepluginsimple.c \
        gvalue.c \
        gvaluetypes.c \
 @STRIP_END@
index 841c329f8ed0872c8a105a06f541ad5aa9249205..beb6dbdac89ab973fb45ebb2727c89c1eedd5d9a 100644 (file)
@@ -433,7 +433,7 @@ handlers_find (gpointer         instance,
                                                      handler->closure->meta_marshal == 0 &&
                                                      ((GCClosure*) handler->closure)->callback == func)))
                  {
-                   mlist = handler_match_prepend (mlist, handler, signal_id);
+                   mlist = handler_match_prepend (mlist, handler, hlist->signal_id);
                    if (one_and_only)
                      return mlist;
                  }