@@ -56,6 +56,27 @@ class _multibytecodec.MultibyteStreamWriter "MultibyteStreamWriterObject *" "cli
56
56
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=305a76dfdd24b99c]*/
57
57
#undef clinic_get_state
58
58
59
+ #define _MultibyteCodec_CAST (op ) ((MultibyteCodec *)(op))
60
+ #define _MultibyteCodecObject_CAST (op ) ((MultibyteCodecObject *)(op))
61
+
62
+ #define _MultibyteStatefulCodecContext_CAST (op ) \
63
+ ((MultibyteStatefulCodecContext *)(op))
64
+
65
+ #define _MultibyteStatefulEncoderContext_CAST (op ) \
66
+ ((MultibyteStatefulEncoderContext *)(op))
67
+ #define _MultibyteStatefulDecoderContext_CAST (op ) \
68
+ ((MultibyteStatefulDecoderContext *)(op))
69
+
70
+ #define _MultibyteIncrementalEncoderObject_CAST (op ) \
71
+ ((MultibyteIncrementalEncoderObject *)(op))
72
+ #define _MultibyteIncrementalDecoderObject_CAST (op ) \
73
+ ((MultibyteIncrementalDecoderObject *)(op))
74
+
75
+ #define _MultibyteStreamReaderObject_CAST (op ) \
76
+ ((MultibyteStreamReaderObject *)(op))
77
+ #define _MultibyteStreamWriterObject_CAST (op ) \
78
+ ((MultibyteStreamWriterObject *)(op))
79
+
59
80
typedef struct {
60
81
PyObject * inobj ;
61
82
Py_ssize_t inpos , inlen ;
@@ -136,9 +157,10 @@ call_error_callback(PyObject *errors, PyObject *exc)
136
157
}
137
158
138
159
static PyObject *
139
- codecctx_errors_get (MultibyteStatefulCodecContext * self , void * Py_UNUSED (ignored ))
160
+ codecctx_errors_get (PyObject * op , void * Py_UNUSED (closure ))
140
161
{
141
162
const char * errors ;
163
+ MultibyteStatefulCodecContext * self = _MultibyteStatefulCodecContext_CAST (op );
142
164
143
165
if (self -> errors == ERROR_STRICT )
144
166
errors = "strict" ;
@@ -154,11 +176,11 @@ codecctx_errors_get(MultibyteStatefulCodecContext *self, void *Py_UNUSED(ignored
154
176
}
155
177
156
178
static int
157
- codecctx_errors_set (MultibyteStatefulCodecContext * self , PyObject * value ,
158
- void * closure )
179
+ codecctx_errors_set (PyObject * op , PyObject * value , void * Py_UNUSED (closure ))
159
180
{
160
181
PyObject * cb ;
161
182
const char * str ;
183
+ MultibyteStatefulCodecContext * self = _MultibyteStatefulCodecContext_CAST (op );
162
184
163
185
if (value == NULL ) {
164
186
PyErr_SetString (PyExc_AttributeError , "cannot delete attribute" );
@@ -184,9 +206,8 @@ codecctx_errors_set(MultibyteStatefulCodecContext *self, PyObject *value,
184
206
185
207
/* This getset handlers list is used by all the stateful codec objects */
186
208
static PyGetSetDef codecctx_getsets [] = {
187
- {"errors" , (getter )codecctx_errors_get ,
188
- (setter )codecctx_errors_set ,
189
- PyDoc_STR ("how to treat errors" )},
209
+ {"errors" , codecctx_errors_get , codecctx_errors_set ,
210
+ PyDoc_STR ("how to treat errors" )},
190
211
{NULL ,}
191
212
};
192
213
@@ -719,22 +740,24 @@ static struct PyMethodDef multibytecodec_methods[] = {
719
740
};
720
741
721
742
static int
722
- multibytecodec_clear (MultibyteCodecObject * self )
743
+ multibytecodec_clear (PyObject * op )
723
744
{
745
+ MultibyteCodecObject * self = _MultibyteCodecObject_CAST (op );
724
746
Py_CLEAR (self -> cjk_module );
725
747
return 0 ;
726
748
}
727
749
728
750
static int
729
- multibytecodec_traverse (MultibyteCodecObject * self , visitproc visit , void * arg )
751
+ multibytecodec_traverse (PyObject * op , visitproc visit , void * arg )
730
752
{
753
+ MultibyteCodecObject * self = _MultibyteCodecObject_CAST (op );
731
754
Py_VISIT (Py_TYPE (self ));
732
755
Py_VISIT (self -> cjk_module );
733
756
return 0 ;
734
757
}
735
758
736
759
static void
737
- multibytecodec_dealloc (MultibyteCodecObject * self )
760
+ multibytecodec_dealloc (PyObject * self )
738
761
{
739
762
PyObject_GC_UnTrack (self );
740
763
PyTypeObject * tp = Py_TYPE (self );
@@ -1106,17 +1129,18 @@ mbiencoder_init(PyObject *self, PyObject *args, PyObject *kwds)
1106
1129
}
1107
1130
1108
1131
static int
1109
- mbiencoder_traverse (MultibyteIncrementalEncoderObject * self ,
1110
- visitproc visit , void * arg )
1132
+ mbiencoder_traverse (PyObject * op , visitproc visit , void * arg )
1111
1133
{
1134
+ MultibyteIncrementalEncoderObject * self = _MultibyteIncrementalEncoderObject_CAST (op );
1112
1135
if (ERROR_ISCUSTOM (self -> errors ))
1113
1136
Py_VISIT (self -> errors );
1114
1137
return 0 ;
1115
1138
}
1116
1139
1117
1140
static void
1118
- mbiencoder_dealloc (MultibyteIncrementalEncoderObject * self )
1141
+ mbiencoder_dealloc (PyObject * op )
1119
1142
{
1143
+ MultibyteIncrementalEncoderObject * self = _MultibyteIncrementalEncoderObject_CAST (op );
1120
1144
PyTypeObject * tp = Py_TYPE (self );
1121
1145
PyObject_GC_UnTrack (self );
1122
1146
ERROR_DECREF (self -> errors );
@@ -1388,17 +1412,18 @@ mbidecoder_init(PyObject *self, PyObject *args, PyObject *kwds)
1388
1412
}
1389
1413
1390
1414
static int
1391
- mbidecoder_traverse (MultibyteIncrementalDecoderObject * self ,
1392
- visitproc visit , void * arg )
1415
+ mbidecoder_traverse (PyObject * op , visitproc visit , void * arg )
1393
1416
{
1417
+ MultibyteIncrementalDecoderObject * self = _MultibyteIncrementalDecoderObject_CAST (op );
1394
1418
if (ERROR_ISCUSTOM (self -> errors ))
1395
1419
Py_VISIT (self -> errors );
1396
1420
return 0 ;
1397
1421
}
1398
1422
1399
1423
static void
1400
- mbidecoder_dealloc (MultibyteIncrementalDecoderObject * self )
1424
+ mbidecoder_dealloc (PyObject * op )
1401
1425
{
1426
+ MultibyteIncrementalDecoderObject * self = _MultibyteIncrementalDecoderObject_CAST (op );
1402
1427
PyTypeObject * tp = Py_TYPE (self );
1403
1428
PyObject_GC_UnTrack (self );
1404
1429
ERROR_DECREF (self -> errors );
@@ -1704,18 +1729,19 @@ mbstreamreader_init(PyObject *self, PyObject *args, PyObject *kwds)
1704
1729
}
1705
1730
1706
1731
static int
1707
- mbstreamreader_traverse (MultibyteStreamReaderObject * self ,
1708
- visitproc visit , void * arg )
1732
+ mbstreamreader_traverse (PyObject * op , visitproc visit , void * arg )
1709
1733
{
1734
+ MultibyteStreamReaderObject * self = _MultibyteStreamReaderObject_CAST (op );
1710
1735
if (ERROR_ISCUSTOM (self -> errors ))
1711
1736
Py_VISIT (self -> errors );
1712
1737
Py_VISIT (self -> stream );
1713
1738
return 0 ;
1714
1739
}
1715
1740
1716
1741
static void
1717
- mbstreamreader_dealloc (MultibyteStreamReaderObject * self )
1742
+ mbstreamreader_dealloc (PyObject * op )
1718
1743
{
1744
+ MultibyteStreamReaderObject * self = _MultibyteStreamReaderObject_CAST (op );
1719
1745
PyTypeObject * tp = Py_TYPE (self );
1720
1746
PyObject_GC_UnTrack (self );
1721
1747
ERROR_DECREF (self -> errors );
@@ -1927,18 +1953,19 @@ mbstreamwriter_init(PyObject *self, PyObject *args, PyObject *kwds)
1927
1953
}
1928
1954
1929
1955
static int
1930
- mbstreamwriter_traverse (MultibyteStreamWriterObject * self ,
1931
- visitproc visit , void * arg )
1956
+ mbstreamwriter_traverse (PyObject * op , visitproc visit , void * arg )
1932
1957
{
1958
+ MultibyteStreamWriterObject * self = _MultibyteStreamWriterObject_CAST (op );
1933
1959
if (ERROR_ISCUSTOM (self -> errors ))
1934
1960
Py_VISIT (self -> errors );
1935
1961
Py_VISIT (self -> stream );
1936
1962
return 0 ;
1937
1963
}
1938
1964
1939
1965
static void
1940
- mbstreamwriter_dealloc (MultibyteStreamWriterObject * self )
1966
+ mbstreamwriter_dealloc (PyObject * op )
1941
1967
{
1968
+ MultibyteStreamWriterObject * self = _MultibyteStreamWriterObject_CAST (op );
1942
1969
PyTypeObject * tp = Py_TYPE (self );
1943
1970
PyObject_GC_UnTrack (self );
1944
1971
ERROR_DECREF (self -> errors );
@@ -2044,7 +2071,7 @@ _multibytecodec_clear(PyObject *mod)
2044
2071
static void
2045
2072
_multibytecodec_free (void * mod )
2046
2073
{
2047
- _multibytecodec_clear ((PyObject * )mod );
2074
+ ( void ) _multibytecodec_clear ((PyObject * )mod );
2048
2075
}
2049
2076
2050
2077
#define CREATE_TYPE (module , type , spec ) \
0 commit comments