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]