mirror of
https://github.com/python/cpython.git
synced 2025-07-30 06:34:15 +00:00
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:
parent
7ab92d54b5
commit
04fc4f2a46
17 changed files with 113 additions and 117 deletions
|
@ -79,9 +79,10 @@ _PyBytes_FromSize(Py_ssize_t size, int use_calloc)
|
|||
op = (PyBytesObject *)PyObject_Calloc(1, PyBytesObject_SIZE + size);
|
||||
else
|
||||
op = (PyBytesObject *)PyObject_Malloc(PyBytesObject_SIZE + size);
|
||||
if (op == NULL)
|
||||
if (op == NULL) {
|
||||
return PyErr_NoMemory();
|
||||
(void)PyObject_INIT_VAR(op, &PyBytes_Type, size);
|
||||
}
|
||||
_PyObject_InitVar((PyVarObject*)op, &PyBytes_Type, size);
|
||||
op->ob_shash = -1;
|
||||
if (!use_calloc)
|
||||
op->ob_sval[size] = '\0';
|
||||
|
@ -148,9 +149,10 @@ PyBytes_FromString(const char *str)
|
|||
|
||||
/* Inline PyObject_NewVar */
|
||||
op = (PyBytesObject *)PyObject_MALLOC(PyBytesObject_SIZE + size);
|
||||
if (op == NULL)
|
||||
if (op == NULL) {
|
||||
return PyErr_NoMemory();
|
||||
(void)PyObject_INIT_VAR(op, &PyBytes_Type, size);
|
||||
}
|
||||
_PyObject_InitVar((PyVarObject*)op, &PyBytes_Type, size);
|
||||
op->ob_shash = -1;
|
||||
memcpy(op->ob_sval, str, size+1);
|
||||
/* share short strings */
|
||||
|
@ -1435,9 +1437,10 @@ bytes_repeat(PyBytesObject *a, Py_ssize_t n)
|
|||
return NULL;
|
||||
}
|
||||
op = (PyBytesObject *)PyObject_MALLOC(PyBytesObject_SIZE + nbytes);
|
||||
if (op == NULL)
|
||||
if (op == NULL) {
|
||||
return PyErr_NoMemory();
|
||||
(void)PyObject_INIT_VAR(op, &PyBytes_Type, size);
|
||||
}
|
||||
_PyObject_InitVar((PyVarObject*)op, &PyBytes_Type, size);
|
||||
op->ob_shash = -1;
|
||||
op->ob_sval[size] = '\0';
|
||||
if (Py_SIZE(a) == 1 && n > 0) {
|
||||
|
|
|
@ -6,8 +6,10 @@
|
|||
/* Submitted by Jim Hugunin */
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_object.h" // _PyObject_Init()
|
||||
#include "structmember.h" // PyMemberDef
|
||||
|
||||
|
||||
/*[clinic input]
|
||||
class complex "PyComplexObject *" "&PyComplex_Type"
|
||||
[clinic start generated code]*/
|
||||
|
@ -229,13 +231,12 @@ complex_subtype_from_c_complex(PyTypeObject *type, Py_complex cval)
|
|||
PyObject *
|
||||
PyComplex_FromCComplex(Py_complex cval)
|
||||
{
|
||||
PyComplexObject *op;
|
||||
|
||||
/* Inline PyObject_New */
|
||||
op = (PyComplexObject *) PyObject_MALLOC(sizeof(PyComplexObject));
|
||||
if (op == NULL)
|
||||
PyComplexObject *op = PyObject_MALLOC(sizeof(PyComplexObject));
|
||||
if (op == NULL) {
|
||||
return PyErr_NoMemory();
|
||||
(void)PyObject_INIT(op, &PyComplex_Type);
|
||||
}
|
||||
_PyObject_Init((PyObject*)op, &PyComplex_Type);
|
||||
op->cval = cval;
|
||||
return (PyObject *) op;
|
||||
}
|
||||
|
|
|
@ -4,8 +4,9 @@
|
|||
for any kind of float exception without losing portability. */
|
||||
|
||||
#include "Python.h"
|
||||
#include "pycore_dtoa.h"
|
||||
#include "pycore_dtoa.h" // _Py_dg_dtoa()
|
||||
#include "pycore_interp.h" // _PyInterpreterState.float_state
|
||||
#include "pycore_object.h" // _PyObject_Init()
|
||||
#include "pycore_pystate.h" // _PyInterpreterState_GET()
|
||||
|
||||
#include <ctype.h>
|
||||
|
@ -129,7 +130,7 @@ PyFloat_FromDouble(double fval)
|
|||
return PyErr_NoMemory();
|
||||
}
|
||||
}
|
||||
(void)PyObject_INIT(op, &PyFloat_Type);
|
||||
_PyObject_Init((PyObject*)op, &PyFloat_Type);
|
||||
op->ob_fval = fval;
|
||||
return (PyObject *) op;
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include "Python.h"
|
||||
#include "pycore_bitutils.h" // _Py_popcount32()
|
||||
#include "pycore_interp.h" // _PY_NSMALLPOSINTS
|
||||
#include "pycore_object.h" // _PyObject_InitVar()
|
||||
#include "pycore_pystate.h" // _Py_IsMainInterpreter()
|
||||
#include "longintrepr.h"
|
||||
|
||||
|
@ -146,7 +147,8 @@ _PyLong_New(Py_ssize_t size)
|
|||
PyErr_NoMemory();
|
||||
return NULL;
|
||||
}
|
||||
return (PyLongObject*)PyObject_INIT_VAR(result, &PyLong_Type, size);
|
||||
_PyObject_InitVar((PyVarObject*)result, &PyLong_Type, size);
|
||||
return result;
|
||||
}
|
||||
|
||||
PyObject *
|
||||
|
|
|
@ -139,23 +139,23 @@ Py_DecRef(PyObject *o)
|
|||
PyObject *
|
||||
PyObject_Init(PyObject *op, PyTypeObject *tp)
|
||||
{
|
||||
/* Any changes should be reflected in PyObject_INIT() macro */
|
||||
if (op == NULL) {
|
||||
return PyErr_NoMemory();
|
||||
}
|
||||
|
||||
return PyObject_INIT(op, tp);
|
||||
_PyObject_Init(op, tp);
|
||||
return op;
|
||||
}
|
||||
|
||||
PyVarObject *
|
||||
PyObject_InitVar(PyVarObject *op, PyTypeObject *tp, Py_ssize_t size)
|
||||
{
|
||||
/* Any changes should be reflected in PyObject_INIT_VAR() macro */
|
||||
if (op == NULL) {
|
||||
return (PyVarObject *) PyErr_NoMemory();
|
||||
}
|
||||
|
||||
return PyObject_INIT_VAR(op, tp, size);
|
||||
_PyObject_InitVar(op, tp, size);
|
||||
return op;
|
||||
}
|
||||
|
||||
PyObject *
|
||||
|
@ -165,7 +165,7 @@ _PyObject_New(PyTypeObject *tp)
|
|||
if (op == NULL) {
|
||||
return PyErr_NoMemory();
|
||||
}
|
||||
PyObject_INIT(op, tp);
|
||||
_PyObject_Init(op, tp);
|
||||
return op;
|
||||
}
|
||||
|
||||
|
@ -175,9 +175,11 @@ _PyObject_NewVar(PyTypeObject *tp, Py_ssize_t nitems)
|
|||
PyVarObject *op;
|
||||
const size_t size = _PyObject_VAR_SIZE(tp, nitems);
|
||||
op = (PyVarObject *) PyObject_MALLOC(size);
|
||||
if (op == NULL)
|
||||
if (op == NULL) {
|
||||
return (PyVarObject *)PyErr_NoMemory();
|
||||
return PyObject_INIT_VAR(op, tp, nitems);
|
||||
}
|
||||
_PyObject_InitVar(op, tp, nitems);
|
||||
return op;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -62,7 +62,7 @@ tuple_alloc(struct _Py_tuple_state *state, Py_ssize_t size)
|
|||
assert(size != 0);
|
||||
state->free_list[size] = (PyTupleObject *) op->ob_item[0];
|
||||
state->numfree[size]--;
|
||||
/* Inline PyObject_InitVar */
|
||||
/* Inlined _PyObject_InitVar() without _PyType_HasFeature() test */
|
||||
#ifdef Py_TRACE_REFS
|
||||
Py_SET_SIZE(op, size);
|
||||
Py_SET_TYPE(op, &PyTuple_Type);
|
||||
|
|
|
@ -1060,10 +1060,10 @@ PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
|
|||
memset(obj, '\0', size);
|
||||
|
||||
if (type->tp_itemsize == 0) {
|
||||
(void)PyObject_INIT(obj, type);
|
||||
_PyObject_Init(obj, type);
|
||||
}
|
||||
else {
|
||||
(void) PyObject_INIT_VAR((PyVarObject *)obj, type, nitems);
|
||||
_PyObject_InitVar((PyVarObject *)obj, type, nitems);
|
||||
}
|
||||
|
||||
if (_PyType_IS_GC(type)) {
|
||||
|
|
|
@ -1435,11 +1435,10 @@ PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar)
|
|||
* 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 @@ PyUnicode_BuildEncodingMap(PyObject* string)
|
|||
/* 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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue