mirror of
https://github.com/python/cpython.git
synced 2025-07-07 11:25:30 +00:00
gh-127705: Move Py_INCREF_MORTAL() to the internal C API (GH-136178)
Rename Py_INCREF_MORTAL() to _Py_INCREF_MORTAL() and move it to pycore_object.h internal header.
This commit is contained in:
parent
ab7196a2f5
commit
fa43a1e0f8
3 changed files with 18 additions and 18 deletions
|
@ -1033,6 +1033,20 @@ enum _PyAnnotateFormat {
|
|||
|
||||
int _PyObject_SetDict(PyObject *obj, PyObject *value);
|
||||
|
||||
#ifndef Py_GIL_DISABLED
|
||||
static inline Py_ALWAYS_INLINE void _Py_INCREF_MORTAL(PyObject *op)
|
||||
{
|
||||
assert(!_Py_IsStaticImmortal(op));
|
||||
op->ob_refcnt++;
|
||||
_Py_INCREF_STAT_INC();
|
||||
#if defined(Py_REF_DEBUG) && !defined(Py_LIMITED_API)
|
||||
if (!_Py_IsImmortal(op)) {
|
||||
_Py_INCREF_IncRefTotal();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -626,7 +626,7 @@ _PyStackRef_FromPyObjectNew(PyObject *obj)
|
|||
if (_Py_IsImmortal(obj)) {
|
||||
return (_PyStackRef){ .bits = ((uintptr_t)obj) | Py_TAG_REFCNT};
|
||||
}
|
||||
Py_INCREF_MORTAL(obj);
|
||||
_Py_INCREF_MORTAL(obj);
|
||||
_PyStackRef ref = (_PyStackRef){ .bits = (uintptr_t)obj };
|
||||
PyStackRef_CheckValid(ref);
|
||||
return ref;
|
||||
|
@ -637,7 +637,7 @@ static inline _PyStackRef
|
|||
_PyStackRef_FromPyObjectNewMortal(PyObject *obj)
|
||||
{
|
||||
assert(obj != NULL);
|
||||
Py_INCREF_MORTAL(obj);
|
||||
_Py_INCREF_MORTAL(obj);
|
||||
_PyStackRef ref = (_PyStackRef){ .bits = (uintptr_t)obj };
|
||||
PyStackRef_CheckValid(ref);
|
||||
return ref;
|
||||
|
@ -654,14 +654,14 @@ PyStackRef_FromPyObjectBorrow(PyObject *obj)
|
|||
/* WARNING: This macro evaluates its argument more than once */
|
||||
#ifdef _WIN32
|
||||
#define PyStackRef_DUP(REF) \
|
||||
(PyStackRef_RefcountOnObject(REF) ? (Py_INCREF_MORTAL(BITS_TO_PTR(REF)), (REF)) : (REF))
|
||||
(PyStackRef_RefcountOnObject(REF) ? (_Py_INCREF_MORTAL(BITS_TO_PTR(REF)), (REF)) : (REF))
|
||||
#else
|
||||
static inline _PyStackRef
|
||||
PyStackRef_DUP(_PyStackRef ref)
|
||||
{
|
||||
assert(!PyStackRef_IsNull(ref));
|
||||
if (PyStackRef_RefcountOnObject(ref)) {
|
||||
Py_INCREF_MORTAL(BITS_TO_PTR(ref));
|
||||
_Py_INCREF_MORTAL(BITS_TO_PTR(ref));
|
||||
}
|
||||
return ref;
|
||||
}
|
||||
|
|
|
@ -244,20 +244,6 @@ PyAPI_FUNC(void) Py_DecRef(PyObject *);
|
|||
PyAPI_FUNC(void) _Py_IncRef(PyObject *);
|
||||
PyAPI_FUNC(void) _Py_DecRef(PyObject *);
|
||||
|
||||
#ifndef Py_GIL_DISABLED
|
||||
static inline Py_ALWAYS_INLINE void Py_INCREF_MORTAL(PyObject *op)
|
||||
{
|
||||
assert(!_Py_IsStaticImmortal(op));
|
||||
op->ob_refcnt++;
|
||||
_Py_INCREF_STAT_INC();
|
||||
#if defined(Py_REF_DEBUG) && !defined(Py_LIMITED_API)
|
||||
if (!_Py_IsImmortal(op)) {
|
||||
_Py_INCREF_IncRefTotal();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline Py_ALWAYS_INLINE void Py_INCREF(PyObject *op)
|
||||
{
|
||||
#if defined(Py_LIMITED_API) && (Py_LIMITED_API+0 >= 0x030c0000 || defined(Py_REF_DEBUG))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue