Re: [sigc] SEGV: Deleting a connected instance in another connected instance's signal handler



Hello Ron!

It seems that you have done a thorough investigation. Thus I, too,
strongly suspect another bug. Could you please file a report at
bugzilla.gnome.org and attach a simple test case that reproduces
the bug?

Regards,

  Martin

Am 2003.10.18 21:52 schrieb(en) rsteinke w-link net:
I've got a case where two different instances of two different classes
(call them M and C) connect to the same signal. M connects first, then
C.
At some later time, C deletes M during C's callback from the signal.
That callback finishes successfully. The next time the signal is
called,
I get a SEGV in emit_ (in particular, in Signal1<R,P1,Marsh>::emit_).
Some checking shows that it's inside the loop over
SignalConnectionNode* i.
It's gotten through the loop once, successfully emitting the callback
to C.
On the second iteration, it gets a bad value for s (sometimes 0,
sometimes
something obviously bad like 0x11, sometimes a valid looking pointer
with
and invalid s->proxy_) and seg faults. I've checked using 1.2.5,
1.2.4, and
1.2.1, so it isn't affected by the 'delete in its own callback' fix
from
1.2.3. If I don't delete M, I don't get the SEGV.

Ron Steinke
_______________________________________________
libsigc-list mailing list
libsigc-list gnome org
http://mail.gnome.org/mailman/listinfo/libsigc-list




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]