@@ -208,7 +208,7 @@ namespace objects
208208 {
209209 if (static_data_object.tp_dict == 0 )
210210 {
211- Py_TYPE (&static_data_object) = &PyType_Type;
211+ Py_SET_TYPE (&static_data_object, &PyType_Type) ;
212212 static_data_object.tp_base = &PyProperty_Type;
213213 if (PyType_Ready (&static_data_object))
214214 return 0 ;
@@ -316,7 +316,7 @@ namespace objects
316316 {
317317 if (class_metatype_object.tp_dict == 0 )
318318 {
319- Py_TYPE (&class_metatype_object) = &PyType_Type;
319+ Py_SET_TYPE (&class_metatype_object, &PyType_Type) ;
320320 class_metatype_object.tp_base = &PyType_Type;
321321 if (PyType_Ready (&class_metatype_object))
322322 return type_handle ();
@@ -374,12 +374,7 @@ namespace objects
374374 // like, so we'll store the total size of the object
375375 // there. A negative number indicates that the extra
376376 // instance memory is not yet allocated to any holders.
377- #if PY_VERSION_HEX >= 0x02060000
378- Py_SIZE (result) =
379- #else
380- result->ob_size =
381- #endif
382- -(static_cast <int >(offsetof (instance<>,storage) + instance_size));
377+ Py_SET_SIZE (result,-static_cast <int >(offsetof (instance<>,storage) + instance_size));
383378 }
384379 return (PyObject*)result;
385380 }
@@ -470,7 +465,7 @@ namespace objects
470465 {
471466 if (class_type_object.tp_dict == 0 )
472467 {
473- Py_TYPE (&class_type_object) = incref (class_metatype ().get ());
468+ Py_SET_TYPE (&class_type_object, incref (class_metatype ().get () ));
474469 class_type_object.tp_base = &PyBaseObject_Type;
475470 if (PyType_Ready (&class_type_object))
476471 return type_handle ();
@@ -739,7 +734,7 @@ void* instance_holder::allocate(PyObject* self_, std::size_t holder_offset, std:
739734 assert (holder_offset >= offsetof (objects::instance<>,storage));
740735
741736 // Record the fact that the storage is occupied, noting where it starts
742- Py_SIZE (self) = holder_offset;
737+ Py_SET_SIZE (self, holder_offset) ;
743738 return (char *)self + holder_offset;
744739 }
745740 else
0 commit comments