bpo-39947: Use PyThreadState_GetFrame() (GH-19159) · python/cpython@3072338
@@ -1830,7 +1830,7 @@ _is_running(PyInterpreterState *interp)
18301830"interpreter has more than one thread");
18311831return -1;
18321832 }
1833-PyFrameObject *frame = tstate->frame;
1833+PyFrameObject *frame = PyThreadState_GetFrame(tstate);
18341834if (frame == NULL) {
18351835if (PyErr_Occurred() != NULL) {
18361836return -1;
@@ -2004,15 +2004,16 @@ interp_create(PyObject *self, PyObject *args)
20042004PyErr_SetString(PyExc_RuntimeError, "interpreter creation failed");
20052005return NULL;
20062006 }
2007-PyObject *idobj = _PyInterpreterState_GetIDObject(tstate->interp);
2007+PyInterpreterState *interp = PyThreadState_GetInterpreter(tstate);
2008+PyObject *idobj = _PyInterpreterState_GetIDObject(interp);
20082009if (idobj == NULL) {
20092010// XXX Possible GILState issues?
20102011save_tstate = PyThreadState_Swap(tstate);
20112012Py_EndInterpreter(tstate);
20122013PyThreadState_Swap(save_tstate);
20132014return NULL;
20142015 }
2015-_PyInterpreterState_RequireIDRef(tstate->interp, 1);
2016+_PyInterpreterState_RequireIDRef(interp, 1);
20162017return idobj;
20172018}
20182019