return;
}
- for (pyframe = tstate->frame; pyframe != NULL; pyframe = pyframe->f_back) {
+ pyframe = PyThreadState_GetFrame(tstate);
+ for (; pyframe != NULL; pyframe = pyframe->f_back) {
if (traceback->nframe < _Py_tracemalloc_config.max_nframe) {
tracemalloc_get_frame(pyframe, &traceback->frames[traceback->nframe]);
assert(traceback->frames[traceback->nframe].filename != NULL);
"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;
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);
PyThreadState_Swap(save_tstate);
return NULL;
}
- _PyInterpreterState_RequireIDRef(tstate->interp, 1);
+ _PyInterpreterState_RequireIDRef(interp, 1);
return idobj;
}