https://github.com/python/cpython/commit/5ba67af006079915af0a1312735efc40fa36c4f3
commit: 5ba67af006079915af0a1312735efc40fa36c4f3
branch: main
author: Eric Snow <[email protected]>
committer: ericsnowcurrently <[email protected]>
date: 2024-11-22T09:37:02-07:00
summary:

gh-127117: Ensure the Correct Last Fields of PyInterpreterState and of 
_PyRuntimeState (gh-127118)

We add some comments so contributors can be aware and we move one out-of-place 
field up.

files:
M Include/internal/pycore_interp.h
M Include/internal/pycore_runtime.h

diff --git a/Include/internal/pycore_interp.h b/Include/internal/pycore_interp.h
index 5e4bcbf835a4d0..87cdcb5b119d15 100644
--- a/Include/internal/pycore_interp.h
+++ b/Include/internal/pycore_interp.h
@@ -283,6 +283,8 @@ struct _is {
 
     /* the initial PyInterpreterState.threads.head */
     _PyThreadStateImpl _initial_thread;
+    // _initial_thread should be the last field of PyInterpreterState.
+    // See https://github.com/python/cpython/issues/127117.
 };
 
 
diff --git a/Include/internal/pycore_runtime.h 
b/Include/internal/pycore_runtime.h
index 2f2cec22cf1589..86d024535fdda8 100644
--- a/Include/internal/pycore_runtime.h
+++ b/Include/internal/pycore_runtime.h
@@ -169,6 +169,12 @@ typedef struct pyruntimestate {
     struct _Py_unicode_runtime_state unicode_state;
     struct _types_runtime_state types;
 
+#if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE)
+    // Used in "Python/emscripten_trampoline.c" to choose between type
+    // reflection trampoline and EM_JS trampoline.
+    bool wasm_type_reflection_available;
+#endif
+
     /* All the objects that are shared by the runtime's interpreters. */
     struct _Py_cached_objects cached_objects;
     struct _Py_static_objects static_objects;
@@ -189,13 +195,8 @@ typedef struct pyruntimestate {
 
     /* _PyRuntimeState.interpreters.main */
     PyInterpreterState _main_interpreter;
-
-#if defined(__EMSCRIPTEN__) && defined(PY_CALL_TRAMPOLINE)
-    // Used in "Python/emscripten_trampoline.c" to choose between type
-    // reflection trampoline and EM_JS trampoline.
-    bool wasm_type_reflection_available;
-#endif
-
+    // _main_interpreter should be the last field of _PyRuntimeState.
+    // See https://github.com/python/cpython/issues/127117.
 } _PyRuntimeState;
 
 

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]

Reply via email to