gh-102304: Consolidate Direct Usage of _Py_RefTotal (gh-102514)

This simplifies further changes to _Py_RefTotal (e.g. make it atomic or move it to PyInterpreterState).

https://github.com/python/cpython/issues/102304
This commit is contained in:
Eric Snow 2023-03-08 12:03:50 -07:00 • committed by GitHub
parent 11a2c6ce51
commit cbb0aa71d0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 127 additions and 45 deletions

View file

@ -1654,15 +1654,10 @@ slot_tp_del(PyObject *self)
*/
{
Py_ssize_t refcnt = Py_REFCNT(self);
_Py_NewReference(self);
_Py_NewReferenceNoTotal(self);
Py_SET_REFCNT(self, refcnt);
}
assert(!PyType_IS_GC(Py_TYPE(self)) || PyObject_GC_IsTracked(self));
/* If Py_REF_DEBUG macro is defined, _Py_NewReference() increased
_Py_RefTotal, so we need to undo that. */
#ifdef Py_REF_DEBUG
_Py_RefTotal--;
#endif
}
static PyObject *