[Python-checkins] bpo-46417: _PyList_Fini() clears indexerr (GH-30815)
vstinner
webhook-mailer at python.org
Sat Jan 22 20:21:00 EST 2022
https://github.com/python/cpython/commit/976dec9b3b35fddbaa893c99297e0c54731451b5
commit: 976dec9b3b35fddbaa893c99297e0c54731451b5
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2022-01-23T02:20:44+01:00
summary:
bpo-46417: _PyList_Fini() clears indexerr (GH-30815)
_PyList_Fini() now clears the 'indexerr' error message.
files:
M Objects/listobject.c
diff --git a/Objects/listobject.c b/Objects/listobject.c
index 0ce58b240327f..752d9e00bb7bf 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)
{
More information about the Python-checkins
mailing list