Store actual ints, not pointers to them in the interpreter state. (GH-29274)

This commit is contained in:
Mark Shannon 2021-10-28 17:35:43 +01:00 committed by GitHub
parent 13d9205f40
commit 4fc68560ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 10 additions and 21 deletions

View file

@ -17,7 +17,7 @@ static inline PyObject* __PyLong_GetSmallInt_internal(int value)
PyInterpreterState *interp = _PyInterpreterState_GET();
assert(-_PY_NSMALLNEGINTS <= value && value < _PY_NSMALLPOSINTS);
size_t index = _PY_NSMALLNEGINTS + value;
PyObject *obj = (PyObject*)interp->small_ints[index];
PyObject *obj = (PyObject*)&interp->small_ints[index];
// _PyLong_GetZero(), _PyLong_GetOne() and get_small_int() must not be
// called before _PyLong_Init() nor after _PyLong_Fini().
assert(obj != NULL);