@@ -12,6 +12,8 @@ typedef struct {
1212 PyObject * ns_dict ;
1313} _PyNamespaceObject ;
1414
15+ #define _PyNamespace_CAST (op ) _Py_CAST(_PyNamespaceObject*, (op))
16+
1517
1618static PyMemberDef namespace_members [] = {
1719 {"__dict__" , _Py_T_OBJECT , offsetof(_PyNamespaceObject , ns_dict ), Py_READONLY },
@@ -41,8 +43,9 @@ namespace_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
4143
4244
4345static int
44- namespace_init (_PyNamespaceObject * ns , PyObject * args , PyObject * kwds )
46+ namespace_init (PyObject * op , PyObject * args , PyObject * kwds )
4547{
48+ _PyNamespaceObject * ns = _PyNamespace_CAST (op );
4649 PyObject * arg = NULL ;
4750 if (!PyArg_UnpackTuple (args , _PyType_Name (Py_TYPE (ns )), 0 , 1 , & arg )) {
4851 return -1 ;
@@ -76,8 +79,9 @@ namespace_init(_PyNamespaceObject *ns, PyObject *args, PyObject *kwds)
7679
7780
7881static void
79- namespace_dealloc (_PyNamespaceObject * ns )
82+ namespace_dealloc (PyObject * op )
8083{
84+ _PyNamespaceObject * ns = _PyNamespace_CAST (op );
8185 PyObject_GC_UnTrack (ns );
8286 Py_CLEAR (ns -> ns_dict );
8387 Py_TYPE (ns )-> tp_free ((PyObject * )ns );
@@ -169,16 +173,18 @@ namespace_repr(PyObject *ns)
169173
170174
171175static int
172- namespace_traverse (_PyNamespaceObject * ns , visitproc visit , void * arg )
176+ namespace_traverse (PyObject * op , visitproc visit , void * arg )
173177{
178+ _PyNamespaceObject * ns = _PyNamespace_CAST (op );
174179 Py_VISIT (ns -> ns_dict );
175180 return 0 ;
176181}
177182
178183
179184static int
180- namespace_clear (_PyNamespaceObject * ns )
185+ namespace_clear (PyObject * op )
181186{
187+ _PyNamespaceObject * ns = _PyNamespace_CAST (op );
182188 Py_CLEAR (ns -> ns_dict );
183189 return 0 ;
184190}
@@ -258,12 +264,12 @@ PyTypeObject _PyNamespace_Type = {
258264 "types.SimpleNamespace" , /* tp_name */
259265 sizeof (_PyNamespaceObject ), /* tp_basicsize */
260266 0 , /* tp_itemsize */
261- ( destructor ) namespace_dealloc , /* tp_dealloc */
267+ namespace_dealloc , /* tp_dealloc */
262268 0 , /* tp_vectorcall_offset */
263269 0 , /* tp_getattr */
264270 0 , /* tp_setattr */
265271 0 , /* tp_as_async */
266- ( reprfunc ) namespace_repr , /* tp_repr */
272+ namespace_repr , /* tp_repr */
267273 0 , /* tp_as_number */
268274 0 , /* tp_as_sequence */
269275 0 , /* tp_as_mapping */
@@ -276,8 +282,8 @@ PyTypeObject _PyNamespace_Type = {
276282 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC |
277283 Py_TPFLAGS_BASETYPE , /* tp_flags */
278284 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 */
281287 namespace_richcompare , /* tp_richcompare */
282288 0 , /* tp_weaklistoffset */
283289 0 , /* tp_iter */
@@ -290,9 +296,9 @@ PyTypeObject _PyNamespace_Type = {
290296 0 , /* tp_descr_get */
291297 0 , /* tp_descr_set */
292298 offsetof(_PyNamespaceObject , ns_dict ), /* tp_dictoffset */
293- ( initproc ) namespace_init , /* tp_init */
299+ namespace_init , /* tp_init */
294300 PyType_GenericAlloc , /* tp_alloc */
295- ( newfunc ) namespace_new , /* tp_new */
301+ namespace_new , /* tp_new */
296302 PyObject_GC_Del , /* tp_free */
297303};
298304
0 commit comments