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.
This commit is contained in:
Victor Stinner 2020-06-16 01:28:07 +02:00 committed by GitHub
parent 7ab92d54b5
commit 04fc4f2a46
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 113 additions and 117 deletions

View file

@ -118,7 +118,14 @@ PyAPI_FUNC(void) PyObject_Free(void *ptr);
/* Functions */
PyAPI_FUNC(PyObject *) PyObject_Init(PyObject *, PyTypeObject *);
PyAPI_FUNC(PyVarObject *) PyObject_InitVar(PyVarObject *,
PyTypeObject *, Py_ssize_t);
PyTypeObject *, Py_ssize_t);
#define PyObject_INIT(op, typeobj) \
PyObject_Init(_PyObject_CAST(op), (typeobj))
#define PyObject_INIT_VAR(op, typeobj, size) \
PyObject_InitVar(_PyVarObject_CAST(op), (typeobj), (size))
PyAPI_FUNC(PyObject *) _PyObject_New(PyTypeObject *);
PyAPI_FUNC(PyVarObject *) _PyObject_NewVar(PyTypeObject *, Py_ssize_t);
@ -136,19 +143,6 @@ PyAPI_FUNC(PyVarObject *) _PyObject_NewVar(PyTypeObject *, Py_ssize_t);
#define PyObject_NEW_VAR(type, typeobj, n) PyObject_NewVar(type, typeobj, n)
#ifdef Py_LIMITED_API
/* Define PyObject_INIT() and PyObject_INIT_VAR() as aliases to PyObject_Init()
and PyObject_InitVar() in the limited C API for compatibility with the
CPython C API. */
# define PyObject_INIT(op, typeobj) \
PyObject_Init(_PyObject_CAST(op), (typeobj))
# define PyObject_INIT_VAR(op, typeobj, size) \
PyObject_InitVar(_PyVarObject_CAST(op), (typeobj), (size))
#else
/* PyObject_INIT() and PyObject_INIT_VAR() are defined in cpython/objimpl.h */
#endif
/*
* Garbage Collection Support
* ==========================