mirror of
https://github.com/python/cpython.git
synced 2024-12-12 19:33:52 +08:00
Issue #19512: Py_ReprEnter() and Py_ReprLeave() now use an identifier for the
"Py_Repr" dictionary key
This commit is contained in:
parent
95701bdf40
commit
7a07e451a4
@ -1969,7 +1969,7 @@ _PyObject_DebugTypeStats(FILE *out)
|
||||
See dictobject.c and listobject.c for examples of use.
|
||||
*/
|
||||
|
||||
#define KEY "Py_Repr"
|
||||
_Py_IDENTIFIER(Py_Repr);
|
||||
|
||||
int
|
||||
Py_ReprEnter(PyObject *obj)
|
||||
@ -1981,12 +1981,12 @@ Py_ReprEnter(PyObject *obj)
|
||||
dict = PyThreadState_GetDict();
|
||||
if (dict == NULL)
|
||||
return 0;
|
||||
list = PyDict_GetItemString(dict, KEY);
|
||||
list = _PyDict_GetItemId(dict, &PyId_Py_Repr);
|
||||
if (list == NULL) {
|
||||
list = PyList_New(0);
|
||||
if (list == NULL)
|
||||
return -1;
|
||||
if (PyDict_SetItemString(dict, KEY, list) < 0)
|
||||
if (_PyDict_SetItemId(dict, &PyId_Py_Repr, list) < 0)
|
||||
return -1;
|
||||
Py_DECREF(list);
|
||||
}
|
||||
@ -2014,7 +2014,7 @@ Py_ReprLeave(PyObject *obj)
|
||||
if (dict == NULL)
|
||||
goto finally;
|
||||
|
||||
list = PyDict_GetItemString(dict, KEY);
|
||||
list = _PyDict_GetItemId(dict, &PyId_Py_Repr);
|
||||
if (list == NULL || !PyList_Check(list))
|
||||
goto finally;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user