@@ -491,15 +491,16 @@ subtract_refs(PyGC_Head *containers)
491491 PyObject * op = FROM_GC (gc );
492492 traverse = Py_TYPE (op )-> tp_traverse ;
493493 (void ) traverse (op ,
494- ( visitproc ) visit_decref ,
494+ visit_decref ,
495495 op );
496496 }
497497}
498498
499499/* A traversal callback for move_unreachable. */
500500static int
501- visit_reachable (PyObject * op , PyGC_Head * reachable )
501+ visit_reachable (PyObject * op , void * arg )
502502{
503+ PyGC_Head * reachable = arg ;
503504 OBJECT_STAT_INC (object_visits );
504505 if (!_PyObject_IS_GC (op )) {
505506 return 0 ;
@@ -603,7 +604,7 @@ move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
603604 // NOTE: visit_reachable may change gc->_gc_next when
604605 // young->_gc_prev == gc. Don't do gc = GC_NEXT(gc) before!
605606 (void ) traverse (op ,
606- ( visitproc ) visit_reachable ,
607+ visit_reachable ,
607608 (void * )young );
608609 // relink gc_prev to prev element.
609610 _PyGCHead_SET_PREV (gc , prev );
@@ -726,8 +727,9 @@ clear_unreachable_mask(PyGC_Head *unreachable)
726727
727728/* A traversal callback for move_legacy_finalizer_reachable. */
728729static int
729- visit_move (PyObject * op , PyGC_Head * tolist )
730+ visit_move (PyObject * op , void * arg )
730731{
732+ PyGC_Head * tolist = arg ;
731733 OBJECT_STAT_INC (object_visits );
732734 if (_PyObject_IS_GC (op )) {
733735 PyGC_Head * gc = AS_GC (op );
@@ -751,7 +753,7 @@ move_legacy_finalizer_reachable(PyGC_Head *finalizers)
751753 /* Note that the finalizers list may grow during this. */
752754 traverse = Py_TYPE (FROM_GC (gc ))-> tp_traverse ;
753755 (void ) traverse (FROM_GC (gc ),
754- ( visitproc ) visit_move ,
756+ visit_move ,
755757 (void * )finalizers );
756758 }
757759}
@@ -1684,8 +1686,9 @@ gc_get_count_impl(PyObject *module)
16841686}
16851687
16861688static int
1687- referrersvisit (PyObject * obj , PyObject * objs )
1689+ referrersvisit (PyObject * obj , void * arg )
16881690{
1691+ PyObject * objs = arg ;
16891692 Py_ssize_t i ;
16901693 for (i = 0 ; i < PyTuple_GET_SIZE (objs ); i ++ )
16911694 if (PyTuple_GET_ITEM (objs , i ) == obj )
@@ -1704,7 +1707,7 @@ gc_referrers_for(PyObject *objs, PyGC_Head *list, PyObject *resultlist)
17041707 traverse = Py_TYPE (obj )-> tp_traverse ;
17051708 if (obj == objs || obj == resultlist )
17061709 continue ;
1707- if (traverse (obj , ( visitproc ) referrersvisit , objs )) {
1710+ if (traverse (obj , referrersvisit , objs )) {
17081711 if (PyList_Append (resultlist , obj ) < 0 )
17091712 return 0 ; /* error */
17101713 }
@@ -1740,8 +1743,9 @@ gc_get_referrers(PyObject *self, PyObject *args)
17401743
17411744/* Append obj to list; return true if error (out of memory), false if OK. */
17421745static int
1743- referentsvisit (PyObject * obj , PyObject * list )
1746+ referentsvisit (PyObject * obj , void * arg )
17441747{
1748+ PyObject * list = arg ;
17451749 return PyList_Append (list , obj ) < 0 ;
17461750}
17471751
@@ -1770,7 +1774,7 @@ gc_get_referents(PyObject *self, PyObject *args)
17701774 traverse = Py_TYPE (obj )-> tp_traverse ;
17711775 if (! traverse )
17721776 continue ;
1773- if (traverse (obj , ( visitproc ) referentsvisit , result )) {
1777+ if (traverse (obj , referentsvisit , result )) {
17741778 Py_DECREF (result );
17751779 return NULL ;
17761780 }
0 commit comments