From: Victor Stinner Date: Sun, 23 Jan 2022 01:20:44 +0000 (+0100) Subject: bpo-46417: _PyList_Fini() clears indexerr (GH-30815) X-Git-Tag: v3.11.0a5~139 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=976dec9b3b35fddbaa893c99297e0c54731451b5;p=thirdparty%2FPython%2Fcpython.git bpo-46417: _PyList_Fini() clears indexerr (GH-30815) _PyList_Fini() now clears the 'indexerr' error message. --- diff --git a/Objects/listobject.c b/Objects/listobject.c index 0ce58b240327..752d9e00bb7b 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -15,6 +15,8 @@ class list "PyListObject *" "&PyList_Type" #include "clinic/listobject.c.h" +static PyObject *indexerr = NULL; + #if PyList_MAXFREELIST > 0 static struct _Py_list_state * get_list_state(void) @@ -123,6 +125,10 @@ _PyList_Fini(PyInterpreterState *interp) struct _Py_list_state *state = &interp->list; state->numfree = -1; #endif + + if (_Py_IsMainInterpreter(interp)) { + Py_CLEAR(indexerr); + } } /* Print summary info about the state of the optimized allocator */ @@ -224,8 +230,6 @@ valid_index(Py_ssize_t i, Py_ssize_t limit) return (size_t) i < (size_t) limit; } -static PyObject *indexerr = NULL; - PyObject * PyList_GetItem(PyObject *op, Py_ssize_t i) {