bpo-43268: Pass interp rather than tstate to internal functions (GH-24580)
Pass the current interpreter (interp) rather than the current Python
thread state (tstate) to internal functions which only use the
interpreter.
Modified functions:
* _PyXXX_Fini() and _PyXXX_ClearFreeList() functions
* _PyEval_SignalAsyncExc(), make_pending_calls()
* _PySys_GetObject(), sys_set_object(), sys_set_object_id(), sys_set_object_str()
* should_audit(), set_flags_from_config(), make_flags()
* _PyAtExit_Call()
* init_stdio_encoding()
* etc.
diff --git a/Objects/genobject.c b/Objects/genobject.c
index bde92b4..26e27cc 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -1489,9 +1489,9 @@ PyAsyncGen_New(PyFrameObject *f, PyObject *name, PyObject *qualname)
void
-_PyAsyncGen_ClearFreeLists(PyThreadState *tstate)
+_PyAsyncGen_ClearFreeLists(PyInterpreterState *interp)
{
- struct _Py_async_gen_state *state = &tstate->interp->async_gen;
+ struct _Py_async_gen_state *state = &interp->async_gen;
while (state->value_numfree) {
_PyAsyncGenWrappedValue *o;
@@ -1509,11 +1509,11 @@ _PyAsyncGen_ClearFreeLists(PyThreadState *tstate)
}
void
-_PyAsyncGen_Fini(PyThreadState *tstate)
+_PyAsyncGen_Fini(PyInterpreterState *interp)
{
- _PyAsyncGen_ClearFreeLists(tstate);
+ _PyAsyncGen_ClearFreeLists(interp);
#ifdef Py_DEBUG
- struct _Py_async_gen_state *state = &tstate->interp->async_gen;
+ struct _Py_async_gen_state *state = &interp->async_gen;
state->value_numfree = -1;
state->asend_numfree = -1;
#endif