diff --git a/Include/object.h b/Include/object.h index 2f683eb5885..80669da7d94 100644 --- a/Include/object.h +++ b/Include/object.h @@ -284,7 +284,7 @@ extern DL_IMPORT(int) PyCallable_Check(PyObject *); extern DL_IMPORT(int) PyNumber_Coerce(PyObject **, PyObject **); extern DL_IMPORT(int) PyNumber_CoerceEx(PyObject **, PyObject **); -extern DL_IMPORT(int) (*PyObject_ClearWeakRefs)(PyObject *); +extern DL_IMPORT(void) (*PyObject_ClearWeakRefs)(PyObject *); /* Helpers for printing recursive container types */ extern DL_IMPORT(int) Py_ReprEnter(PyObject *); diff --git a/Modules/_weakref.c b/Modules/_weakref.c index a856901af9b..502d568bbaf 100644 --- a/Modules/_weakref.c +++ b/Modules/_weakref.c @@ -692,7 +692,7 @@ weakref_proxy(PyObject *self, PyObject *args) * until one resurrects the object, at which point it stops invalidating * weak references and returns false. */ -static int +static cleanup_helper(PyObject *object) { PyWeakReference **list; @@ -702,7 +702,7 @@ cleanup_helper(PyObject *object) || object->ob_refcnt != 0) { PyErr_BadInternalCall(); /* not sure what we should return here */ - return 1; + return; } list = GET_WEAKREFS_LISTPTR(object); while (*list != NULL) { @@ -722,7 +722,7 @@ cleanup_helper(PyObject *object) Py_DECREF(callback); } } - return (object->ob_refcnt > 0 ? 0 : 1); + return; } diff --git a/Objects/classobject.c b/Objects/classobject.c index 9cca19f832a..00cfdde6272 100644 --- a/Objects/classobject.c +++ b/Objects/classobject.c @@ -516,8 +516,7 @@ instance_dealloc(register PyInstanceObject *inst) extern long _Py_RefTotal; #endif - if (!PyObject_ClearWeakRefs((PyObject *) inst)) - return; + PyObject_ClearWeakRefs((PyObject *) inst); /* Temporarily resurrect the object. */ #ifdef Py_TRACE_REFS diff --git a/Objects/object.c b/Objects/object.c index 8a898f8bbf6..db7d518a3f0 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -1475,13 +1475,13 @@ PyObject_Free(void *p) call site instead of requiring a test for NULL. */ -static int +static void empty_clear_weak_refs(PyObject *o) { - return 1; + return; } -int (*PyObject_ClearWeakRefs)(PyObject *) = empty_clear_weak_refs; +void (*PyObject_ClearWeakRefs)(PyObject *) = empty_clear_weak_refs;