On 17/01/2007 18.09, Giovanni Bajo wrote:
I think I have managed to produce a (convoluted) testcase for what appears to be a reference leak introduced by recent SIP versions. It ought to be when you added support for lambda expressions as slots.
I think I know the problem: sipWrapper_traverse() does not know anything about lambda expressions in slots. Thus, the GC can't fully traverse the lambda expressions (whose reference is being kept by the sender object), and can't do a full collection of all unreachable items.
I could attempt a fix but I'm not sure how you want to deal with it, since the signal/slot part is pretty internal of qtlib.c, while sipWrapper_traverse() is in siplib.c. Also, I don't fully understand all the semantics of sipSlot (all the combinations of possible NULLs/values for its members) so I'd rather leave this to you.
-- Giovanni Bajo _______________________________________________ PyKDE mailing list [email protected] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
