Martin v. Löwis added the comment: > By leaf, you mean the derived subtype? That sounds a bit quirky (you > need the aforementioned "if"), how about the base heap type instead?
I think this fails (currently) because a subtype defined in Python using a "class" statement will automatically get subtype_dealloc as its dealloc function, which will in turn unconditionally decrefs the type (after calling the tp_dealloc function from its nearest ancestor which doesn't use subtype_dealloc). > Speaking of which, what does this refactoring bring exactly? The type > declarations are slightly less verbose, but other than that, is there a > point? It's really about the PEP 3121 changes: modules shouldn't have any global variables shared across interpreters, so that module cleanup can work properly. Ultimately, this can lead to gc-based shutdown, module unloading, and better separation of interpreters. In addition, it further reduces the differences between "extension types" and "classes" (which supposedly were removed by dropping old-style classes, yet some inconsistencies remain where the interpreter offers some features only to heaptypes). ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue15653> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com