bpo-39947: Use _PyInterpreterState_GET_UNSAFE() (GH-18978)

Replace _PyInterpreterState_Get() function call with
_PyInterpreterState_GET_UNSAFE() macro which is more efficient but
don't check if tstate or interp is NULL.

_Py_GetConfigsAsDict() now uses _PyThreadState_GET().
This commit is contained in:
Victor Stinner 2020-03-13 18:03:56 +01:00 committed by GitHub
parent 6d674a1bf4
commit ff4584caca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 27 additions and 27 deletions

View file

@ -32,7 +32,7 @@ static int _PyCodecRegistry_Init(void); /* Forward */
int PyCodec_Register(PyObject *search_function)
{
PyInterpreterState *interp = _PyInterpreterState_Get();
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
if (interp->codec_search_path == NULL && _PyCodecRegistry_Init())
goto onError;
if (search_function == NULL) {
@ -187,7 +187,7 @@ int _PyCodec_Forget(const char *encoding)
PyObject *v;
int result;
PyInterpreterState *interp = _PyInterpreterState_Get();
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
if (interp->codec_search_path == NULL) {
return -1;
}
@ -620,7 +620,7 @@ PyObject *_PyCodec_DecodeText(PyObject *object,
Return 0 on success, -1 on error */
int PyCodec_RegisterError(const char *name, PyObject *error)
{
PyInterpreterState *interp = _PyInterpreterState_Get();
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
if (interp->codec_search_path == NULL && _PyCodecRegistry_Init())
return -1;
if (!PyCallable_Check(error)) {
@ -1492,7 +1492,7 @@ static int _PyCodecRegistry_Init(void)
}
};
PyInterpreterState *interp = _PyInterpreterState_Get();
PyInterpreterState *interp = _PyInterpreterState_GET_UNSAFE();
PyObject *mod;
if (interp->codec_search_path != NULL)