diff --git a/Include/internal/pycore_tstate.h b/Include/internal/pycore_tstate.h index 58dd66b69efc9d..c11d281876872e 100644 --- a/Include/internal/pycore_tstate.h +++ b/Include/internal/pycore_tstate.h @@ -51,9 +51,6 @@ typedef struct _PyThreadStateImpl { PyObject *asyncio_running_loop; // Strong reference PyObject *asyncio_running_task; // Strong reference - // Reused for the thread's lifetime; owns placeholders while they resolve. - PyObject *lazy_imports; - // Distinguishes between yield and return from PyEval_EvalFrame(). // See gen_send_ex2() in Objects/genobject.c enum { @@ -106,6 +103,9 @@ typedef struct _PyThreadStateImpl { struct _PyJitTracerState *jit_tracer_state; #endif + // Reused for the thread's lifetime; owns placeholders while they resolve. + PyObject *lazy_imports; + #ifdef Py_GIL_DISABLED // gh-144438: Add padding to ensure that the fields above don't share a // cache line with other allocations. diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-10-02-09-58-47.gh-issue-158593.mG78Qp.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-10-02-09-58-47.gh-issue-158593.mG78Qp.rst new file mode 100644 index 00000000000000..1102ec35ddeb05 --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-10-02-09-58-47.gh-issue-158593.mG78Qp.rst @@ -0,0 +1,2 @@ +Move the ``lazy_imports`` field to the end of the internal ``_PyThreadStateImpl`` +struct so that the offsets of the existing fields match 3.15 rc1 and rc2.