@@ -145,7 +145,7 @@ typedef struct {
145
145
} partialobject ;
146
146
147
147
// cast a PyObject pointer PTR to a partialobject pointer (no type checks)
148
- #define _PyPartialObject_CAST ( PTR ) ((partialobject *)(PTR ))
148
+ #define partialobject_CAST ( op ) ((partialobject *)(op ))
149
149
150
150
static void partial_setvectorcall (partialobject * pto );
151
151
static struct PyModuleDef _functools_module ;
@@ -312,7 +312,7 @@ partial_new(PyTypeObject *type, PyObject *args, PyObject *kw)
312
312
static int
313
313
partial_clear (PyObject * self )
314
314
{
315
- partialobject * pto = _PyPartialObject_CAST (self );
315
+ partialobject * pto = partialobject_CAST (self );
316
316
Py_CLEAR (pto -> fn );
317
317
Py_CLEAR (pto -> args );
318
318
Py_CLEAR (pto -> kw );
@@ -323,7 +323,7 @@ partial_clear(PyObject *self)
323
323
static int
324
324
partial_traverse (PyObject * self , visitproc visit , void * arg )
325
325
{
326
- partialobject * pto = _PyPartialObject_CAST (self );
326
+ partialobject * pto = partialobject_CAST (self );
327
327
Py_VISIT (Py_TYPE (pto ));
328
328
Py_VISIT (pto -> fn );
329
329
Py_VISIT (pto -> args );
@@ -338,7 +338,7 @@ partial_dealloc(PyObject *self)
338
338
PyTypeObject * tp = Py_TYPE (self );
339
339
/* bpo-31095: UnTrack is needed before calling any callbacks */
340
340
PyObject_GC_UnTrack (self );
341
- if (_PyPartialObject_CAST (self )-> weakreflist != NULL ) {
341
+ if (partialobject_CAST (self )-> weakreflist != NULL ) {
342
342
PyObject_ClearWeakRefs (self );
343
343
}
344
344
(void )partial_clear (self );
@@ -372,7 +372,7 @@ static PyObject *
372
372
partial_vectorcall (PyObject * self , PyObject * const * args ,
373
373
size_t nargsf , PyObject * kwnames )
374
374
{
375
- partialobject * pto = _PyPartialObject_CAST (self );;
375
+ partialobject * pto = partialobject_CAST (self );;
376
376
PyThreadState * tstate = _PyThreadState_GET ();
377
377
Py_ssize_t nargs = PyVectorcall_NARGS (nargsf );
378
378
@@ -482,7 +482,7 @@ partial_setvectorcall(partialobject *pto)
482
482
static PyObject *
483
483
partial_call (PyObject * self , PyObject * args , PyObject * kwargs )
484
484
{
485
- partialobject * pto = _PyPartialObject_CAST (self );
485
+ partialobject * pto = partialobject_CAST (self );
486
486
assert (PyCallable_Check (pto -> fn ));
487
487
assert (PyTuple_Check (pto -> args ));
488
488
assert (PyDict_Check (pto -> kw ));
@@ -595,7 +595,7 @@ static PyGetSetDef partial_getsetlist[] = {
595
595
static PyObject *
596
596
partial_repr (PyObject * self )
597
597
{
598
- partialobject * pto = _PyPartialObject_CAST (self );
598
+ partialobject * pto = partialobject_CAST (self );
599
599
PyObject * result = NULL ;
600
600
PyObject * arglist ;
601
601
PyObject * mod ;
@@ -668,7 +668,7 @@ partial_repr(PyObject *self)
668
668
static PyObject *
669
669
partial_reduce (PyObject * self , PyObject * Py_UNUSED (args ))
670
670
{
671
- partialobject * pto = _PyPartialObject_CAST (self );
671
+ partialobject * pto = partialobject_CAST (self );
672
672
return Py_BuildValue ("O(O)(OOOO)" , Py_TYPE (pto ), pto -> fn , pto -> fn ,
673
673
pto -> args , pto -> kw ,
674
674
pto -> dict ? pto -> dict : Py_None );
@@ -677,7 +677,7 @@ partial_reduce(PyObject *self, PyObject *Py_UNUSED(args))
677
677
static PyObject *
678
678
partial_setstate (PyObject * self , PyObject * state )
679
679
{
680
- partialobject * pto = _PyPartialObject_CAST (self );
680
+ partialobject * pto = partialobject_CAST (self );
681
681
PyObject * fn , * fnargs , * kw , * dict ;
682
682
683
683
if (!PyTuple_Check (state )) {
@@ -782,16 +782,19 @@ typedef struct {
782
782
PyObject * object ;
783
783
} keyobject ;
784
784
785
+ #define keyobject_CAST (op ) ((keyobject *)(op))
786
+
785
787
static int
786
- keyobject_clear (keyobject * ko )
788
+ keyobject_clear (PyObject * op )
787
789
{
790
+ keyobject * ko = keyobject_CAST (op );
788
791
Py_CLEAR (ko -> cmp );
789
792
Py_CLEAR (ko -> object );
790
793
return 0 ;
791
794
}
792
795
793
796
static void
794
- keyobject_dealloc (keyobject * ko )
797
+ keyobject_dealloc (PyObject * ko )
795
798
{
796
799
PyTypeObject * tp = Py_TYPE (ko );
797
800
PyObject_GC_UnTrack (ko );
@@ -801,8 +804,9 @@ keyobject_dealloc(keyobject *ko)
801
804
}
802
805
803
806
static int
804
- keyobject_traverse (keyobject * ko , visitproc visit , void * arg )
807
+ keyobject_traverse (PyObject * op , visitproc visit , void * arg )
805
808
{
809
+ keyobject * ko = keyobject_CAST (op );
806
810
Py_VISIT (Py_TYPE (ko ));
807
811
Py_VISIT (ko -> cmp );
808
812
Py_VISIT (ko -> object );
@@ -817,18 +821,18 @@ static PyMemberDef keyobject_members[] = {
817
821
};
818
822
819
823
static PyObject *
820
- keyobject_text_signature (PyObject * self , void * Py_UNUSED (ignored ))
824
+ keyobject_text_signature (PyObject * Py_UNUSED ( self ) , void * Py_UNUSED (ignored ))
821
825
{
822
826
return PyUnicode_FromString ("(obj)" );
823
827
}
824
828
825
829
static PyGetSetDef keyobject_getset [] = {
826
- {"__text_signature__" , keyobject_text_signature , ( setter ) NULL },
830
+ {"__text_signature__" , keyobject_text_signature , NULL },
827
831
{NULL }
828
832
};
829
833
830
834
static PyObject *
831
- keyobject_call (keyobject * ko , PyObject * args , PyObject * kwds );
835
+ keyobject_call (PyObject * ko , PyObject * args , PyObject * kwds );
832
836
833
837
static PyObject *
834
838
keyobject_richcompare (PyObject * ko , PyObject * other , int op );
@@ -854,11 +858,12 @@ static PyType_Spec keyobject_type_spec = {
854
858
};
855
859
856
860
static PyObject *
857
- keyobject_call (keyobject * ko , PyObject * args , PyObject * kwds )
861
+ keyobject_call (PyObject * self , PyObject * args , PyObject * kwds )
858
862
{
859
863
PyObject * object ;
860
864
keyobject * result ;
861
865
static char * kwargs [] = {"obj" , NULL };
866
+ keyobject * ko = keyobject_CAST (self );
862
867
863
868
if (!PyArg_ParseTupleAndKeywords (args , kwds , "O:K" , kwargs , & object ))
864
869
return NULL ;
@@ -874,17 +879,20 @@ keyobject_call(keyobject *ko, PyObject *args, PyObject *kwds)
874
879
}
875
880
876
881
static PyObject *
877
- keyobject_richcompare (PyObject * ko , PyObject * other , int op )
882
+ keyobject_richcompare (PyObject * self , PyObject * other , int op )
878
883
{
879
- if (!Py_IS_TYPE (other , Py_TYPE (ko ))) {
884
+ if (!Py_IS_TYPE (other , Py_TYPE (self ))) {
880
885
PyErr_Format (PyExc_TypeError , "other argument must be K instance" );
881
886
return NULL ;
882
887
}
883
888
884
- PyObject * compare = ((keyobject * ) ko )-> cmp ;
889
+ keyobject * lhs = keyobject_CAST (self );
890
+ keyobject * rhs = keyobject_CAST (other );
891
+
892
+ PyObject * compare = lhs -> cmp ;
885
893
assert (compare != NULL );
886
- PyObject * x = (( keyobject * ) ko ) -> object ;
887
- PyObject * y = (( keyobject * ) other ) -> object ;
894
+ PyObject * x = lhs -> object ;
895
+ PyObject * y = rhs -> object ;
888
896
if (!x || !y ){
889
897
PyErr_Format (PyExc_AttributeError , "object" );
890
898
return NULL ;
@@ -1053,9 +1061,12 @@ typedef struct lru_list_elem {
1053
1061
PyObject * key , * result ;
1054
1062
} lru_list_elem ;
1055
1063
1064
+ #define lru_list_elem_CAST (op ) ((lru_list_elem *)(op))
1065
+
1056
1066
static void
1057
- lru_list_elem_dealloc (lru_list_elem * link )
1067
+ lru_list_elem_dealloc (PyObject * op )
1058
1068
{
1069
+ lru_list_elem * link = lru_list_elem_CAST (op );
1059
1070
PyTypeObject * tp = Py_TYPE (link );
1060
1071
Py_XDECREF (link -> key );
1061
1072
Py_XDECREF (link -> result );
@@ -1096,6 +1107,8 @@ typedef struct lru_cache_object {
1096
1107
PyObject * weakreflist ;
1097
1108
} lru_cache_object ;
1098
1109
1110
+ #define lru_cache_object_CAST (op ) ((lru_cache_object *)(op))
1111
+
1099
1112
static PyObject *
1100
1113
lru_cache_make_key (PyObject * kwd_mark , PyObject * args ,
1101
1114
PyObject * kwds , int typed )
@@ -1531,8 +1544,9 @@ lru_cache_clear_list(lru_list_elem *link)
1531
1544
}
1532
1545
1533
1546
static int
1534
- lru_cache_tp_clear (lru_cache_object * self )
1547
+ lru_cache_tp_clear (PyObject * op )
1535
1548
{
1549
+ lru_cache_object * self = lru_cache_object_CAST (op );
1536
1550
lru_list_elem * list = lru_cache_unlink_list (self );
1537
1551
Py_CLEAR (self -> cache );
1538
1552
Py_CLEAR (self -> func );
@@ -1545,23 +1559,25 @@ lru_cache_tp_clear(lru_cache_object *self)
1545
1559
}
1546
1560
1547
1561
static void
1548
- lru_cache_dealloc (lru_cache_object * obj )
1562
+ lru_cache_dealloc (PyObject * op )
1549
1563
{
1564
+ lru_cache_object * obj = lru_cache_object_CAST (op );
1550
1565
PyTypeObject * tp = Py_TYPE (obj );
1551
1566
/* bpo-31095: UnTrack is needed before calling any callbacks */
1552
1567
PyObject_GC_UnTrack (obj );
1553
1568
if (obj -> weakreflist != NULL ) {
1554
- PyObject_ClearWeakRefs (( PyObject * ) obj );
1569
+ PyObject_ClearWeakRefs (op );
1555
1570
}
1556
1571
1557
- (void )lru_cache_tp_clear (obj );
1572
+ (void )lru_cache_tp_clear (op );
1558
1573
tp -> tp_free (obj );
1559
1574
Py_DECREF (tp );
1560
1575
}
1561
1576
1562
1577
static PyObject *
1563
- lru_cache_call (lru_cache_object * self , PyObject * args , PyObject * kwds )
1578
+ lru_cache_call (PyObject * op , PyObject * args , PyObject * kwds )
1564
1579
{
1580
+ lru_cache_object * self = lru_cache_object_CAST (op );
1565
1581
PyObject * result ;
1566
1582
Py_BEGIN_CRITICAL_SECTION (self );
1567
1583
result = self -> wrapper (self , args , kwds );
@@ -1638,8 +1654,9 @@ lru_cache_deepcopy(PyObject *self, PyObject *unused)
1638
1654
}
1639
1655
1640
1656
static int
1641
- lru_cache_tp_traverse (lru_cache_object * self , visitproc visit , void * arg )
1657
+ lru_cache_tp_traverse (PyObject * op , visitproc visit , void * arg )
1642
1658
{
1659
+ lru_cache_object * self = lru_cache_object_CAST (op );
1643
1660
Py_VISIT (Py_TYPE (self ));
1644
1661
lru_list_elem * link = self -> root .next ;
1645
1662
while (link != & self -> root ) {
@@ -1827,7 +1844,7 @@ _functools_clear(PyObject *module)
1827
1844
static void
1828
1845
_functools_free (void * module )
1829
1846
{
1830
- _functools_clear ((PyObject * )module );
1847
+ ( void ) _functools_clear ((PyObject * )module );
1831
1848
}
1832
1849
1833
1850
static struct PyModuleDef_Slot _functools_slots [] = {
0 commit comments