mirror of
https://github.com/python/cpython.git
synced 2025-07-31 23:23:11 +00:00
bpo-39573: Convert Py_REFCNT and Py_SIZE to functions (GH-20429)
Convert Py_REFCNT() and Py_SIZE() macros to static inline functions. They cannot be used as l-value anymore: use Py_SET_REFCNT() and Py_SET_SIZE() to set an object reference count and size. Replace &Py_SIZE(self) with &((PyVarObject*)self)->ob_size in arraymodule.c. This change is backward incompatible on purpose, to prepare the C API for an opaque PyObject structure.
This commit is contained in:
parent
20941de0dd
commit
fe2978b3b9
6 changed files with 44 additions and 14 deletions
|
@ -82,7 +82,7 @@ tuple_alloc(Py_ssize_t size)
|
|||
numfree[size]--;
|
||||
/* Inline PyObject_InitVar */
|
||||
#ifdef Py_TRACE_REFS
|
||||
Py_SIZE(op) = size;
|
||||
Py_SET_SIZE(op, size);
|
||||
Py_SET_TYPE(op, &PyTuple_Type);
|
||||
#endif
|
||||
_Py_NewReference((PyObject *)op);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue