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.
This commit is contained in:
Victor Stinner 2021-02-19 15:10:45 +01:00 committed by GitHub
parent a486054b24
commit bcb094b41f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 240 additions and 245 deletions

View file

@ -1287,9 +1287,9 @@ get_token_missing(void)
void
_PyContext_ClearFreeList(PyThreadState *tstate)
_PyContext_ClearFreeList(PyInterpreterState *interp)
{
struct _Py_context_state *state = &tstate->interp->context;
struct _Py_context_state *state = &interp->context;
for (; state->numfree; state->numfree--) {
PyContext *ctx = state->freelist;
state->freelist = (PyContext *)ctx->ctx_weakreflist;
@ -1300,14 +1300,14 @@ _PyContext_ClearFreeList(PyThreadState *tstate)
void
_PyContext_Fini(PyThreadState *tstate)
_PyContext_Fini(PyInterpreterState *interp)
{
if (_Py_IsMainInterpreter(tstate->interp)) {
if (_Py_IsMainInterpreter(interp)) {
Py_CLEAR(_token_missing);
}
_PyContext_ClearFreeList(tstate);
_PyContext_ClearFreeList(interp);
#ifdef Py_DEBUG
struct _Py_context_state *state = &tstate->interp->context;
struct _Py_context_state *state = &interp->context;
state->numfree = -1;
#endif
_PyHamt_Fini();