summaryrefslogtreecommitdiffstats
path: root/Objects/funcobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/funcobject.c')
-rw-r--r--Objects/funcobject.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/Objects/funcobject.c b/Objects/funcobject.c
index 4ba4728..cca7f01 100644
--- a/Objects/funcobject.c
+++ b/Objects/funcobject.c
@@ -1092,14 +1092,11 @@ static void
func_dealloc(PyObject *self)
{
PyFunctionObject *op = _PyFunction_CAST(self);
- assert(Py_REFCNT(op) == 0);
- Py_SET_REFCNT(op, 1);
+ _PyObject_ResurrectStart(self);
handle_func_event(PyFunction_EVENT_DESTROY, op, NULL);
- if (Py_REFCNT(op) > 1) {
- Py_SET_REFCNT(op, Py_REFCNT(op) - 1);
+ if (_PyObject_ResurrectEnd(self)) {
return;
}
- Py_SET_REFCNT(op, 0);
_PyObject_GC_UNTRACK(op);
if (op->func_weakreflist != NULL) {
PyObject_ClearWeakRefs((PyObject *) op);