Make PyTraceBack_Here use the current thread, not the
frame's thread state. Fixes #1579370.
diff --git a/Misc/NEWS b/Misc/NEWS
index f30f50b..fc5dd66 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,9 @@
Core and builtins
-----------------
+- Bug #1579370: Make PyTraceBack_Here use the current thread, not the
+ frame's thread state.
+
- patch #1630975: Fix crash when replacing sys.stdout in sitecustomize.py
- Bug #1637022: Prefix AST symbols with _Py_.
diff --git a/Python/traceback.c b/Python/traceback.c
index cfbd833..4ddee2c 100644
--- a/Python/traceback.c
+++ b/Python/traceback.c
@@ -113,7 +113,7 @@
int
PyTraceBack_Here(PyFrameObject *frame)
{
- PyThreadState *tstate = frame->f_tstate;
+ PyThreadState *tstate = PyThreadState_GET();
PyTracebackObject *oldtb = (PyTracebackObject *) tstate->curexc_traceback;
PyTracebackObject *tb = newtracebackobject(oldtb, frame);
if (tb == NULL)