Phil Thompson
Tue, 29 Apr 2008 16:34:18 -0700
On Tuesday 29 April 2008, Kevin Watters wrote: > I've got a couple quick questions about SIP's handling of object > destruction. > > The docs for sip.setdeleted says > > setdeleted(obj) > This marks the C++ instance or C structure as having been destroyed or > returned to the heap so that future references to it raise an exception > rather than cause a program crash. Normally SIP handles such things > automatically, but there are circumstances where this isn't possible. obj > is the Python object. > > How does SIP handle this situation "automatically?" I don't see anything > going on in the release_XXX methods in my class wrappers, other than > > delete reinterpret_cast<XXX *>(ptr); > > Also, some of my classes have a Destroy method whose implementation is to > just to call > > delete this; > > Without the SIP wrappers defining a virtual destructor of their own, is > there any way for SIP to recognize that it should mark any existing Python > instances as "deleted?" No - it relies on the class being wrapped having a virtual dtor. Phil _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt