@@ -491,15 +491,16 @@ subtract_refs(PyGC_Head *containers)
491
491
PyObject * op = FROM_GC (gc );
492
492
traverse = Py_TYPE (op )-> tp_traverse ;
493
493
(void ) traverse (op ,
494
- ( visitproc ) visit_decref ,
494
+ visit_decref ,
495
495
op );
496
496
}
497
497
}
498
498
499
499
/* A traversal callback for move_unreachable. */
500
500
static int
501
- visit_reachable (PyObject * op , PyGC_Head * reachable )
501
+ visit_reachable (PyObject * op , void * arg )
502
502
{
503
+ PyGC_Head * reachable = arg ;
503
504
OBJECT_STAT_INC (object_visits );
504
505
if (!_PyObject_IS_GC (op )) {
505
506
return 0 ;
@@ -603,7 +604,7 @@ move_unreachable(PyGC_Head *young, PyGC_Head *unreachable)
603
604
// NOTE: visit_reachable may change gc->_gc_next when
604
605
// young->_gc_prev == gc. Don't do gc = GC_NEXT(gc) before!
605
606
(void ) traverse (op ,
606
- ( visitproc ) visit_reachable ,
607
+ visit_reachable ,
607
608
(void * )young );
608
609
// relink gc_prev to prev element.
609
610
_PyGCHead_SET_PREV (gc , prev );
@@ -726,8 +727,9 @@ clear_unreachable_mask(PyGC_Head *unreachable)
726
727
727
728
/* A traversal callback for move_legacy_finalizer_reachable. */
728
729
static int
729
- visit_move (PyObject * op , PyGC_Head * tolist )
730
+ visit_move (PyObject * op , void * arg )
730
731
{
732
+ PyGC_Head * tolist = arg ;
731
733
OBJECT_STAT_INC (object_visits );
732
734
if (_PyObject_IS_GC (op )) {
733
735
PyGC_Head * gc = AS_GC (op );
@@ -751,7 +753,7 @@ move_legacy_finalizer_reachable(PyGC_Head *finalizers)
751
753
/* Note that the finalizers list may grow during this. */
752
754
traverse = Py_TYPE (FROM_GC (gc ))-> tp_traverse ;
753
755
(void ) traverse (FROM_GC (gc ),
754
- ( visitproc ) visit_move ,
756
+ visit_move ,
755
757
(void * )finalizers );
756
758
}
757
759
}
@@ -1684,8 +1686,9 @@ gc_get_count_impl(PyObject *module)
1684
1686
}
1685
1687
1686
1688
static int
1687
- referrersvisit (PyObject * obj , PyObject * objs )
1689
+ referrersvisit (PyObject * obj , void * arg )
1688
1690
{
1691
+ PyObject * objs = arg ;
1689
1692
Py_ssize_t i ;
1690
1693
for (i = 0 ; i < PyTuple_GET_SIZE (objs ); i ++ )
1691
1694
if (PyTuple_GET_ITEM (objs , i ) == obj )
@@ -1704,7 +1707,7 @@ gc_referrers_for(PyObject *objs, PyGC_Head *list, PyObject *resultlist)
1704
1707
traverse = Py_TYPE (obj )-> tp_traverse ;
1705
1708
if (obj == objs || obj == resultlist )
1706
1709
continue ;
1707
- if (traverse (obj , ( visitproc ) referrersvisit , objs )) {
1710
+ if (traverse (obj , referrersvisit , objs )) {
1708
1711
if (PyList_Append (resultlist , obj ) < 0 )
1709
1712
return 0 ; /* error */
1710
1713
}
@@ -1740,8 +1743,9 @@ gc_get_referrers(PyObject *self, PyObject *args)
1740
1743
1741
1744
/* Append obj to list; return true if error (out of memory), false if OK. */
1742
1745
static int
1743
- referentsvisit (PyObject * obj , PyObject * list )
1746
+ referentsvisit (PyObject * obj , void * arg )
1744
1747
{
1748
+ PyObject * list = arg ;
1745
1749
return PyList_Append (list , obj ) < 0 ;
1746
1750
}
1747
1751
@@ -1770,7 +1774,7 @@ gc_get_referents(PyObject *self, PyObject *args)
1770
1774
traverse = Py_TYPE (obj )-> tp_traverse ;
1771
1775
if (! traverse )
1772
1776
continue ;
1773
- if (traverse (obj , ( visitproc ) referentsvisit , result )) {
1777
+ if (traverse (obj , referentsvisit , result )) {
1774
1778
Py_DECREF (result );
1775
1779
return NULL ;
1776
1780
}
0 commit comments