From: Guido van Rossum Date: Fri, 9 Aug 2002 17:39:14 +0000 (+0000) Subject: For new-style classes, we can now test for tp_del instead of asking X-Git-Tag: v2.3c1~4572 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4030714a93afacdcb4783f37320c48b4ad99da87;p=thirdparty%2FPython%2Fcpython.git For new-style classes, we can now test for tp_del instead of asking for a __del__ attribute, to see if there's a finalizer. --- diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c index e0c763173c6a..bae265389d1c 100644 --- a/Modules/gcmodule.c +++ b/Modules/gcmodule.c @@ -346,9 +346,9 @@ has_finalizer(PyObject *op) if (delstr == NULL) Py_FatalError("PyGC: can't initialize __del__ string"); } - return (PyInstance_Check(op) || - PyType_HasFeature(op->ob_type, Py_TPFLAGS_HEAPTYPE)) - && PyObject_HasAttr(op, delstr); + return PyInstance_Check(op) ? PyObject_HasAttr(op, delstr) : + PyType_HasFeature(op->ob_type, Py_TPFLAGS_HEAPTYPE) ? + op->ob_type->tp_del != NULL : 0; } /* Move all objects with finalizers (instances with __del__) */