Serhiy Storchaka added the comment: It seems to me, that all builtin and extension types set tp_free to PyObject_Del, PyObject_GC_Del, or 0. The int class is the only exception.
int_free() was introduced in 200559fcc664: > Make sure that tp_free frees the int the same way as tp_dealloc would. > This fixes the problem that Barry reported on python-dev: > >>> 23000 .__class__ = bool > crashes in the deallocator. This was because int inherited tp_free > from object, which uses the default allocator. The above example no longer works: >>> 23000 .__class__ = bool Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: __class__ assignment: only for heap types I think int_free should be removed and tp_free should be reverted to 0 (as in float type). ---------- assignee: -> serhiy.storchaka keywords: +patch stage: -> patch review Added file: http://bugs.python.org/file45679/int-tp_free-2.7.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue24469> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com