diff options
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/gcmodule.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c index a8976b3..5bf95b9 100644 --- a/Modules/gcmodule.c +++ b/Modules/gcmodule.c @@ -413,8 +413,12 @@ has_finalizer(PyObject *op) assert(delstr != NULL); return _PyInstance_Lookup(op, delstr) != NULL; } - else + else if (PyType_HasFeature(op->ob_type, Py_TPFLAGS_HEAPTYPE)) return op->ob_type->tp_del != NULL; + else if (PyGen_CheckExact(op)) + return PyGen_NeedsFinalizing((PyGenObject *)op); + else + return 0; } /* Move the objects in unreachable with __del__ methods into `finalizers`. |