[PyKDE] Abstract annotation and deleting objects
Phil Thompson
phil at riverbankcomputing.co.uk
Fri Mar 25 17:47:33 GMT 2005
On Thursday 24 March 2005 1:07 am, James Emerton wrote:
> If a sip specification marks a class with the 'Abstract' annotation,
> the CLASS_CANNOT_CREATE bit is set. This can also be caused by the
> inclusion of pure virtual methods.
Private pure virtual methods.
> The effect of the CLASS_CANNOT_CREATE bit is to set td_init AND
> td_dealloc to 0 in the generated sipTypeDef. This causes factory
> methods returning pointers to abstract interfaces to leak memory.
>
> I am going to attempt to patch this, but I still don't know the SIP
> code very well at all. Anyone know any reason why always generating
> the dealloc_CLASS function might be a bad idea?
I think I just hadn't considered that case. The next snapshot should be fixed.
I'd also question why you are using the Abstract annotation. It's only needed
if you are skipping a pure virtual in the .sip file - don't use it if you are
fully specifying the class. I've changed the documentation to try and make
this clearer.
Phil
More information about the PyQt
mailing list