Antoine Pitrou <pit...@free.fr> added the comment:

Indeed. The io module has had to circumvent this and uses the following snippet 
when resurrecting an instance of a subclass of one of its types (see 
iobase_dealloc() in Modules/_io/iobase.c):

        /* When called from a heap type's dealloc, the type will be
           decref'ed on return (see e.g. subtype_dealloc in typeobject.c). */
        if (PyType_HasFeature(Py_TYPE(self), Py_TPFLAGS_HEAPTYPE))
            Py_INCREF(Py_TYPE(self));
        return;


I agree it would be nice to have an automatic way of handling this. I don't see 
an obvious solution, though.

----------
components: +Interpreter Core
nosy: +benjamin.peterson, pitrou
priority:  -> normal
stage:  -> needs patch
type: crash -> feature request
versions: +Python 3.2

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue8212>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to