bpo-40268: Add _PyInterpreterState_GetConfig() (GH-19492)

Don't access PyInterpreterState.config member directly anymore, but
use new functions:

* _PyInterpreterState_GetConfig()
* _PyInterpreterState_SetConfig()
* _Py_GetConfig()
This commit is contained in:
Victor Stinner 2020-04-13 03:04:28 +02:00 committed by GitHub
parent 14d5331eb5
commit da7933ecc3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 90 additions and 64 deletions

View file

@ -790,7 +790,7 @@ _PyInterpreterState_ClearModules(PyInterpreterState *interp)
void
PyThreadState_Clear(PyThreadState *tstate)
{
int verbose = tstate->interp->config.verbose;
int verbose = _PyInterpreterState_GetConfig(tstate->interp)->verbose;
if (verbose && tstate->frame != NULL) {
/* bpo-20526: After the main thread calls
@ -1808,6 +1808,30 @@ _PyInterpreterState_SetEvalFrameFunc(PyInterpreterState *interp,
interp->eval_frame = eval_frame;
}
const PyConfig*
_PyInterpreterState_GetConfig(PyInterpreterState *interp)
{
return &interp->config;
}
PyStatus
_PyInterpreterState_SetConfig(PyInterpreterState *interp,
const PyConfig *config)
{
return _PyConfig_Copy(&interp->config, config);
}
const PyConfig*
_Py_GetConfig(void)
{
assert(PyGILState_Check());
PyThreadState *tstate = _PyThreadState_GET();
return _PyInterpreterState_GetConfig(tstate->interp);
}
#ifdef __cplusplus
}
#endif