[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