mirror of
https://github.com/python/cpython
synced 2026-09-29 11:35:29 +03:00
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:
parent
11a2c6ce51
commit
cbb0aa71d0
10 changed files with 127 additions and 45 deletions
|
|
@ -3060,21 +3060,20 @@ _PyBytes_Resize(PyObject **pv, Py_ssize_t newsize)
|
|||
Py_DECREF(v);
|
||||
return 0;
|
||||
}
|
||||
/* XXX UNREF/NEWREF interface should be more symmetrical */
|
||||
#ifdef Py_REF_DEBUG
|
||||
_Py_RefTotal--;
|
||||
#endif
|
||||
#ifdef Py_TRACE_REFS
|
||||
_Py_ForgetReference(v);
|
||||
#endif
|
||||
*pv = (PyObject *)
|
||||
PyObject_Realloc(v, PyBytesObject_SIZE + newsize);
|
||||
if (*pv == NULL) {
|
||||
#ifdef Py_REF_DEBUG
|
||||
_Py_DecRefTotal();
|
||||
#endif
|
||||
PyObject_Free(v);
|
||||
PyErr_NoMemory();
|
||||
return -1;
|
||||
}
|
||||
_Py_NewReference(*pv);
|
||||
_Py_NewReferenceNoTotal(*pv);
|
||||
sv = (PyBytesObject *) *pv;
|
||||
Py_SET_SIZE(sv, newsize);
|
||||
sv->ob_sval[newsize] = '\0';
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue