[PyQt] sip: Member objects and GC

Jonathan Kleinehellefort jk at molb.org
Thu Mar 8 22:14:49 GMT 2012


On Thu, 08 Mar 2012 10:03:46 +0000, Phil Thompson <phil at riverbankcomputing.com> wrote:
> Even if there is a reference cycle the garbage collector should break it
> if it is being allowed to run. Any test should explicitly invoke it.

Not sure if this applies here, but I think the Python GC will not call
destructors on objects that are part of a reference cycle.  So maybe the
Python wrappers get collected but not the C++ objects.

> Can you provide such a test that demonstrates the problem?

You can already see it in the original test I put up on my webserver.
But I updated it to make it more explicit:

    http://molb.org/~jk/siptest2.tar.gz

The C++ objects have destructors that should print stuff, but that never
happens.

Another thing: it would be nice if sipKeepReference() would appear in the
docs.

 -- Jonathan


More information about the PyQt mailing list