diff options
author | Victor Stinner <vstinner@python.org> | 2020-03-25 18:52:02 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-25 18:52:02 (GMT) |
commit | 3072338642156a5edfa2deef2557288fff73c22a (patch) | |
tree | c29ba9ddba31386c699a6e7a7417287e519a3158 /Modules/_xxsubinterpretersmodule.c | |
parent | 89a2209ae6fc5f39868621799730e16f931eb497 (diff) | |
download | cpython-3072338642156a5edfa2deef2557288fff73c22a.zip cpython-3072338642156a5edfa2deef2557288fff73c22a.tar.gz cpython-3072338642156a5edfa2deef2557288fff73c22a.tar.bz2 |
bpo-39947: Use PyThreadState_GetFrame() (GH-19159)
_tracemalloc.c and _xxsubinterpretersmodule.c use
PyThreadState_GetFrame() and PyThreadState_GetInterpreter() to no
longer depend on the PyThreadState structure.
Diffstat (limited to 'Modules/_xxsubinterpretersmodule.c')
-rw-r--r-- | Modules/_xxsubinterpretersmodule.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Modules/_xxsubinterpretersmodule.c b/Modules/_xxsubinterpretersmodule.c index 526115a..b3616ae 100644 --- a/Modules/_xxsubinterpretersmodule.c +++ b/Modules/_xxsubinterpretersmodule.c @@ -1830,7 +1830,7 @@ _is_running(PyInterpreterState *interp) "interpreter has more than one thread"); return -1; } - PyFrameObject *frame = tstate->frame; + PyFrameObject *frame = PyThreadState_GetFrame(tstate); if (frame == NULL) { if (PyErr_Occurred() != NULL) { return -1; @@ -2004,7 +2004,8 @@ interp_create(PyObject *self, PyObject *args) PyErr_SetString(PyExc_RuntimeError, "interpreter creation failed"); return NULL; } - PyObject *idobj = _PyInterpreterState_GetIDObject(tstate->interp); + PyInterpreterState *interp = PyThreadState_GetInterpreter(tstate); + PyObject *idobj = _PyInterpreterState_GetIDObject(interp); if (idobj == NULL) { // XXX Possible GILState issues? save_tstate = PyThreadState_Swap(tstate); @@ -2012,7 +2013,7 @@ interp_create(PyObject *self, PyObject *args) PyThreadState_Swap(save_tstate); return NULL; } - _PyInterpreterState_RequireIDRef(tstate->interp, 1); + _PyInterpreterState_RequireIDRef(interp, 1); return idobj; } |