On Tue, Mar 25, 2008 at 07:10:57PM +0100, Johannes Hofmann wrote:
On Thu, Mar 20, 2008 at 07:44:52PM +0000, place wrote:
I think I mentioned this problem some time ago, but playing with ComplexButton makes it much worse (when meta charset causes a repush).
The backtrace shows that it's unhappy because IdleFunc doesn't have an equals().
To make the problem go away, I changed the remove in FltkPlatform::removeIdle() to a removeRef, but, again, I don't know this code well enough to know what should be going on.
#0 0x40344c81 in kill () from /lib/libc.so.6 #1 0x401b04a1 in pthread_kill () from /lib/libpthread.so.0 #2 0x401b087b in raise () from /lib/libpthread.so.0 #3 0x403448f8 in raise () from /lib/libc.so.6 #4 0x40345f00 in abort () from /lib/libc.so.6 #5 0x0809e054 in misc::assertNotReached () at misc.hh:67 #6 0x080ad6f1 in object::Object::equals (this=0x81ab118, other=0x81ab118) at object.cc:49 #7 0x080aa182 in container::untyped::List::remove0 (this=0x81c1b90, element=0x81ab118, compare=true, doNotDeleteAtAll=false) at container.cc:254 #8 0x080891c7 in container::untyped::List::remove (this=0x81c1b90, element=0x81ab118) at ../lout/container.hh:169 #9 0x080891eb in container::typed::List<dw::fltk::FltkPlatform::IdleFunc>::remo ve (this=0x81c1960, element=0x81ab118) at ../lout/container.hh:376 #10 0x08086968 in dw::fltk::FltkPlatform::removeIdle (this=0x81c1b68, idleId=1) at fltkplatform.cc:319 #11 0x0809feaa in ~Layout (this=0x81c1bf8) at layout.cc:117
As far as I can see it should be removeRef () here, as you suggest. While looking at it, I found a buglet in layout.cc.
Committed both. -- Cheers Jorge.-