Kaydet (Commit) 4030714a authored tarafından Guido van Rossum's avatar Guido van Rossum

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.
üst 4aa21aa5
......@@ -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__) */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment