• Tim Peters's avatar
    object.h special-build macro minefield: renamed all the new lexical · 3459251d
    Tim Peters yazdı
    helper macros to something saner, and used them appropriately in other
    files too, to reduce #ifdef blocks.
    
    classobject.c, instance_dealloc():  One of my worst Python Memories is
    trying to fix this routine a few years ago when COUNT_ALLOCS was defined
    but Py_TRACE_REFS wasn't.  The special-build code here is way too
    complicated.  Now it's much simpler.  Difference:  in a Py_TRACE_REFS
    build, the instance is no longer in the doubly-linked list of live
    objects while its __del__ method is executing, and that may be visible
    via sys.getobjects() called from a __del__ method.  Tough -- the object
    is presumed dead while its __del__ is executing anyway, and not calling
    _Py_NewReference() at the start allows enormous code simplification.
    
    typeobject.c, call_finalizer():  The special-build instance_dealloc()
    pain apparently spread to here too via cut-'n-paste, and this is much
    simpler now too.  In addition, I didn't understand why this routine
    was calling _PyObject_GC_TRACK() after a resurrection, since there's no
    plausible way _PyObject_GC_UNTRACK() could have been called on the
    object by this point.  I suspect it was left over from pasting the
    instance_delloc() code.  Instead asserted that the object is still
    tracked.  Caution:  I suspect we don't have a test that actually
    exercises the subtype_dealloc() __del__-resurrected-me code.
    3459251d
Adı
Son kayıt (commit)
Son güncelleme
..
Python.h Loading commit data...
abstract.h Loading commit data...
bitset.h Loading commit data...
boolobject.h Loading commit data...
bufferobject.h Loading commit data...
cStringIO.h Loading commit data...
cellobject.h Loading commit data...
ceval.h Loading commit data...
classobject.h Loading commit data...
cobject.h Loading commit data...
codecs.h Loading commit data...
compile.h Loading commit data...
complexobject.h Loading commit data...
descrobject.h Loading commit data...
dictobject.h Loading commit data...
enumobject.h Loading commit data...
errcode.h Loading commit data...
eval.h Loading commit data...
fileobject.h Loading commit data...
floatobject.h Loading commit data...
frameobject.h Loading commit data...
funcobject.h Loading commit data...
graminit.h Loading commit data...
grammar.h Loading commit data...
import.h Loading commit data...
intobject.h Loading commit data...
intrcheck.h Loading commit data...
iterobject.h Loading commit data...
listobject.h Loading commit data...
longintrepr.h Loading commit data...
longobject.h Loading commit data...
marshal.h Loading commit data...
metagrammar.h Loading commit data...
methodobject.h Loading commit data...
modsupport.h Loading commit data...
moduleobject.h Loading commit data...
node.h Loading commit data...
object.h Loading commit data...
objimpl.h Loading commit data...
opcode.h Loading commit data...
osdefs.h Loading commit data...
parsetok.h Loading commit data...
patchlevel.h Loading commit data...
pgenheaders.h Loading commit data...
py_curses.h Loading commit data...
pydebug.h Loading commit data...
pyerrors.h Loading commit data...
pyfpe.h Loading commit data...
pygetopt.h Loading commit data...
pymactoolbox.h Loading commit data...
pymem.h Loading commit data...
pyport.h Loading commit data...
pystate.h Loading commit data...
pythonrun.h Loading commit data...
pythread.h Loading commit data...
rangeobject.h Loading commit data...
sliceobject.h Loading commit data...
stringobject.h Loading commit data...
structmember.h Loading commit data...
structseq.h Loading commit data...
symtable.h Loading commit data...
sysmodule.h Loading commit data...
token.h Loading commit data...
traceback.h Loading commit data...
tupleobject.h Loading commit data...
ucnhash.h Loading commit data...
unicodeobject.h Loading commit data...
weakrefobject.h Loading commit data...