• Tim Peters's avatar
    move_finalizers(): Rewrote. It's not necessary for this routine · f6ae7a43
    Tim Peters yazdı
    to special-case classic classes, or to worry about refcounts;
    has_finalizer() deleted the current object iff the first entry in
    the unreachable list has changed.  I don't believe it was correct
    to check for ob_refcnt == 1, either:  the dealloc routine would get
    called by Py_DECREF then, but there's nothing to stop the dealloc
    routine from ressurecting the object, and then gc would remain at
    the head of the unreachable list despite that its refcount temporarily
    fell to 0 (and that would lead to an infinite loop in move_finalizers()).
    
    I'm still worried about has_finalizer() resurrecting other objects
    in the unreachable list:  what's to stop them from getting collected?
    f6ae7a43
Adı
Son kayıt (commit)
Son güncelleme
Demo Loading commit data...
Doc Loading commit data...
Grammar Loading commit data...
Include Loading commit data...
Lib Loading commit data...
Mac Loading commit data...
Misc Loading commit data...
Modules Loading commit data...
Objects Loading commit data...
PC Loading commit data...
PCbuild Loading commit data...
Parser Loading commit data...
Python Loading commit data...
RISCOS Loading commit data...
Tools Loading commit data...
.cvsignore Loading commit data...
.hgtags Loading commit data...
LICENSE Loading commit data...
Makefile.pre.in Loading commit data...
README Loading commit data...
configure Loading commit data...
configure.in Loading commit data...
install-sh Loading commit data...
pyconfig.h.in Loading commit data...
setup.py Loading commit data...