diff options
Diffstat (limited to 'Modules/gcmodule.c')
-rw-r--r-- | Modules/gcmodule.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/Modules/gcmodule.c b/Modules/gcmodule.c index 2cbf573cf4..2b47abae1a 100644 --- a/Modules/gcmodule.c +++ b/Modules/gcmodule.c @@ -373,9 +373,9 @@ update_refs(PyGC_Head *containers) /* A traversal callback for subtract_refs. */ static int -visit_decref(PyObject *op, void *data) +visit_decref(PyObject *op, void *parent) { - _PyObject_ASSERT(op, !_PyObject_IsFreed(op)); + _PyObject_ASSERT(_PyObject_CAST(parent), !_PyObject_IsFreed(op)); if (PyObject_IS_GC(op)) { PyGC_Head *gc = AS_GC(op); @@ -401,10 +401,11 @@ subtract_refs(PyGC_Head *containers) traverseproc traverse; PyGC_Head *gc = GC_NEXT(containers); for (; gc != containers; gc = GC_NEXT(gc)) { - traverse = Py_TYPE(FROM_GC(gc))->tp_traverse; + PyObject *op = FROM_GC(gc); + traverse = Py_TYPE(op)->tp_traverse; (void) traverse(FROM_GC(gc), (visitproc)visit_decref, - NULL); + op); } } |