@@ -12,6 +12,8 @@ typedef struct {
12
12
PyObject * ns_dict ;
13
13
} _PyNamespaceObject ;
14
14
15
+ #define _PyNamespace_CAST (op ) _Py_CAST(_PyNamespaceObject*, (op))
16
+
15
17
16
18
static PyMemberDef namespace_members [] = {
17
19
{"__dict__" , _Py_T_OBJECT , offsetof(_PyNamespaceObject , ns_dict ), Py_READONLY },
@@ -41,8 +43,9 @@ namespace_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
41
43
42
44
43
45
static int
44
- namespace_init (_PyNamespaceObject * ns , PyObject * args , PyObject * kwds )
46
+ namespace_init (PyObject * op , PyObject * args , PyObject * kwds )
45
47
{
48
+ _PyNamespaceObject * ns = _PyNamespace_CAST (op );
46
49
PyObject * arg = NULL ;
47
50
if (!PyArg_UnpackTuple (args , _PyType_Name (Py_TYPE (ns )), 0 , 1 , & arg )) {
48
51
return -1 ;
@@ -76,8 +79,9 @@ namespace_init(_PyNamespaceObject *ns, PyObject *args, PyObject *kwds)
76
79
77
80
78
81
static void
79
- namespace_dealloc (_PyNamespaceObject * ns )
82
+ namespace_dealloc (PyObject * op )
80
83
{
84
+ _PyNamespaceObject * ns = _PyNamespace_CAST (op );
81
85
PyObject_GC_UnTrack (ns );
82
86
Py_CLEAR (ns -> ns_dict );
83
87
Py_TYPE (ns )-> tp_free ((PyObject * )ns );
@@ -169,16 +173,18 @@ namespace_repr(PyObject *ns)
169
173
170
174
171
175
static int
172
- namespace_traverse (_PyNamespaceObject * ns , visitproc visit , void * arg )
176
+ namespace_traverse (PyObject * op , visitproc visit , void * arg )
173
177
{
178
+ _PyNamespaceObject * ns = _PyNamespace_CAST (op );
174
179
Py_VISIT (ns -> ns_dict );
175
180
return 0 ;
176
181
}
177
182
178
183
179
184
static int
180
- namespace_clear (_PyNamespaceObject * ns )
185
+ namespace_clear (PyObject * op )
181
186
{
187
+ _PyNamespaceObject * ns = _PyNamespace_CAST (op );
182
188
Py_CLEAR (ns -> ns_dict );
183
189
return 0 ;
184
190
}
@@ -258,12 +264,12 @@ PyTypeObject _PyNamespace_Type = {
258
264
"types.SimpleNamespace" , /* tp_name */
259
265
sizeof (_PyNamespaceObject ), /* tp_basicsize */
260
266
0 , /* tp_itemsize */
261
- ( destructor ) namespace_dealloc , /* tp_dealloc */
267
+ namespace_dealloc , /* tp_dealloc */
262
268
0 , /* tp_vectorcall_offset */
263
269
0 , /* tp_getattr */
264
270
0 , /* tp_setattr */
265
271
0 , /* tp_as_async */
266
- ( reprfunc ) namespace_repr , /* tp_repr */
272
+ namespace_repr , /* tp_repr */
267
273
0 , /* tp_as_number */
268
274
0 , /* tp_as_sequence */
269
275
0 , /* tp_as_mapping */
@@ -276,8 +282,8 @@ PyTypeObject _PyNamespace_Type = {
276
282
Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
277
283
Py_TPFLAGS_BASETYPE , /* tp_flags */
278
284
namespace_doc , /* tp_doc */
279
- ( traverseproc ) namespace_traverse , /* tp_traverse */
280
- ( inquiry ) namespace_clear , /* tp_clear */
285
+ namespace_traverse , /* tp_traverse */
286
+ namespace_clear , /* tp_clear */
281
287
namespace_richcompare , /* tp_richcompare */
282
288
0 , /* tp_weaklistoffset */
283
289
0 , /* tp_iter */
@@ -290,9 +296,9 @@ PyTypeObject _PyNamespace_Type = {
290
296
0 , /* tp_descr_get */
291
297
0 , /* tp_descr_set */
292
298
offsetof(_PyNamespaceObject , ns_dict ), /* tp_dictoffset */
293
- ( initproc ) namespace_init , /* tp_init */
299
+ namespace_init , /* tp_init */
294
300
PyType_GenericAlloc , /* tp_alloc */
295
- ( newfunc ) namespace_new , /* tp_new */
301
+ namespace_new , /* tp_new */
296
302
PyObject_GC_Del , /* tp_free */
297
303
};
298
304
0 commit comments