Staging
v0.5.1
https://github.com/python/cpython
Revision 97719c9ce56bfb19fa7b0833c8c7947ad2fd7e52 authored by Tim Peters on 21 May 2003, 20:43:10 UTC, committed by Tim Peters on 21 May 2003, 20:43:10 UTC
tp_free is NULL or PyObject_Del at the end.  Because it's a base type
it must call tp_free in its dealloc function, and because it's gc'able
it must not call PyObject_Del.

inherit_slots():  Don't inherit tp_free unless the type and its base
agree about whether they're gc'able.  If the type is gc'able and the
base is not, and the base uses the default PyObject_Del for its
tp_free, give the type PyObject_GC_Del for its tp_free (the appropriate
default for a gc'able type).

cPickle.c:  The Pickler and Unpickler types claim to be base classes
and gc'able, but their dealloc functions didn't call tp_free.
Repaired that.  Also call PyType_Ready() on these typeobjects, so
that the correct (PyObject_GC_Del) default memory-freeing function
gets plugged into these types' tp_free slots.
1 parent 54d9cdf
History
Tip revision: 97719c9ce56bfb19fa7b0833c8c7947ad2fd7e52 authored by Tim Peters on 21 May 2003, 20:43:10 UTC
PyType_Ready(): Complain if the type is a base type, and gc'able, and
Tip revision: 97719c9
File Mode Size
Python.h -rw-r--r-- 3.0 KB
abstract.h -rw-r--r-- 35.5 KB
bitset.h -rw-r--r-- 792 bytes
bufferobject.h -rw-r--r-- 929 bytes
cStringIO.h -rw-r--r-- 4.0 KB
cellobject.h -rw-r--r-- 632 bytes
ceval.h -rw-r--r-- 3.8 KB
classobject.h -rw-r--r-- 2.9 KB
cobject.h -rw-r--r-- 1.7 KB
codecs.h -rw-r--r-- 3.3 KB
compile.h -rw-r--r-- 3.0 KB
complexobject.h -rw-r--r-- 1.5 KB
descrobject.h -rw-r--r-- 2.0 KB
dictobject.h -rw-r--r-- 4.9 KB
errcode.h -rw-r--r-- 1.1 KB
eval.h -rw-r--r-- 478 bytes
fileobject.h -rw-r--r-- 1.2 KB
floatobject.h -rw-r--r-- 1.8 KB
frameobject.h -rw-r--r-- 3.0 KB
funcobject.h -rw-r--r-- 1.7 KB
graminit.h -rw-r--r-- 1.4 KB
grammar.h -rw-r--r-- 2.0 KB
import.h -rw-r--r-- 1.5 KB
intobject.h -rw-r--r-- 2.3 KB
intrcheck.h -rw-r--r-- 285 bytes
iterobject.h -rw-r--r-- 550 bytes
listobject.h -rw-r--r-- 1.8 KB
longintrepr.h -rw-r--r-- 1.8 KB
longobject.h -rw-r--r-- 4.0 KB
marshal.h -rw-r--r-- 710 bytes
metagrammar.h -rw-r--r-- 253 bytes
methodobject.h -rw-r--r-- 2.0 KB
modsupport.h -rw-r--r-- 3.4 KB
moduleobject.h -rw-r--r-- 641 bytes
node.h -rw-r--r-- 828 bytes
object.h -rw-r--r-- 24.3 KB
objimpl.h -rw-r--r-- 12.7 KB
opcode.h -rw-r--r-- 4.2 KB
osdefs.h -rw-r--r-- 903 bytes
parsetok.h -rw-r--r-- 927 bytes
patchlevel.h -rw-r--r-- 1.2 KB
pgenheaders.h -rw-r--r-- 1.4 KB
py_curses.h -rw-r--r-- 3.8 KB
pydebug.h -rw-r--r-- 1.1 KB
pyerrors.h -rw-r--r-- 5.2 KB
pyfpe.h -rw-r--r-- 8.3 KB
pygetopt.h -rw-r--r-- 323 bytes
pymactoolbox.h -rw-r--r-- 7.4 KB
pymem.h -rw-r--r-- 5.1 KB
pyport.h -rw-r--r-- 14.8 KB
pystate.h -rw-r--r-- 2.9 KB
pythonrun.h -rw-r--r-- 4.7 KB
pythread.h -rw-r--r-- 1.4 KB
rangeobject.h -rw-r--r-- 613 bytes
sliceobject.h -rw-r--r-- 971 bytes
stringobject.h -rw-r--r-- 6.1 KB
structmember.h -rw-r--r-- 2.5 KB
structseq.h -rw-r--r-- 851 bytes
symtable.h -rw-r--r-- 3.5 KB
sysmodule.h -rw-r--r-- 816 bytes
token.h -rw-r--r-- 1.7 KB
traceback.h -rw-r--r-- 477 bytes
tupleobject.h -rw-r--r-- 1.6 KB
ucnhash.h -rw-r--r-- 682 bytes
unicodeobject.h -rw-r--r-- 39.4 KB
weakrefobject.h -rw-r--r-- 1.4 KB

back to top