On Wednesday 17 January 2007 11:33 pm, Giovanni Bajo wrote: > 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.
Should be fixed in tonight's SIP and PyQt3/4 snapshots. I suspect that these fixes represent most of the work needed to allow SIP to take a reference to non-lambda slots as well. Can you come up with a similar test case for that scenario? Phil _______________________________________________ PyKDE mailing list [email protected] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
