bpo-40989: PyObject_INIT() becomes an alias to PyObject_Init() (GH-20901)
The PyObject_INIT() and PyObject_INIT_VAR() macros become aliases to,
respectively, PyObject_Init() and PyObject_InitVar() functions.
Rename _PyObject_INIT() and _PyObject_INIT_VAR() static inline
functions to, respectively, _PyObject_Init() and _PyObject_InitVar(),
and move them to pycore_object.h. Remove their return value:
their return type becomes void.
The _datetime module is now built with the Py_BUILD_CORE_MODULE macro
defined.
Remove an outdated comment on _Py_tracemalloc_config.
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 7ab0c88..c75eb07 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1435,11 +1435,10 @@
* it's data buffer.
*/
obj = (PyObject *) PyObject_MALLOC(struct_size + (size + 1) * char_size);
- if (obj == NULL)
+ if (obj == NULL) {
return PyErr_NoMemory();
- obj = PyObject_INIT(obj, &PyUnicode_Type);
- if (obj == NULL)
- return NULL;
+ }
+ _PyObject_Init(obj, &PyUnicode_Type);
unicode = (PyCompactUnicodeObject *)obj;
if (is_ascii)
@@ -8392,9 +8391,11 @@
/* Create a three-level trie */
result = PyObject_MALLOC(sizeof(struct encoding_map) +
16*count2 + 128*count3 - 1);
- if (!result)
+ if (!result) {
return PyErr_NoMemory();
- PyObject_Init(result, &EncodingMapType);
+ }
+
+ _PyObject_Init(result, &EncodingMapType);
mresult = (struct encoding_map*)result;
mresult->count2 = count2;
mresult->count3 = count3;