diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2025-07-01 13:44:32 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-01 13:44:32 (GMT) |
commit | f152d60b68ae473306f6087c1b8b40922444f801 (patch) | |
tree | 81a3cad819ff603d1de2cb2082e68108aadc452f /Include/internal/pycore_pythonrun.h | |
parent | df4e87b153622b9fc5028de0050a8c5678894bc5 (diff) | |
download | cpython-f152d60b68ae473306f6087c1b8b40922444f801.zip cpython-f152d60b68ae473306f6087c1b8b40922444f801.tar.gz cpython-f152d60b68ae473306f6087c1b8b40922444f801.tar.bz2 |
[3.14] gh-130396: Move PYOS_LOG2_STACK_MARGIN to internal headers (GH-135928) (#136173)
gh-130396: Move PYOS_LOG2_STACK_MARGIN to internal headers (GH-135928)
Move PYOS_LOG2_STACK_MARGIN, PYOS_STACK_MARGIN,
PYOS_STACK_MARGIN_BYTES and PYOS_STACK_MARGIN_SHIFT macros to
pycore_pythonrun.h internal header. Add underscore (_) prefix to the
names to make them private. Rename _PYOS to _PyOS.
(cherry picked from commit 28940e8e4884eb3444a8ea15a5634f76b154d7ed)
Co-authored-by: Victor Stinner <vstinner@python.org>
Diffstat (limited to 'Include/internal/pycore_pythonrun.h')
-rw-r--r-- | Include/internal/pycore_pythonrun.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Include/internal/pycore_pythonrun.h b/Include/internal/pycore_pythonrun.h index 7daed13..c283209 100644 --- a/Include/internal/pycore_pythonrun.h +++ b/Include/internal/pycore_pythonrun.h @@ -33,6 +33,28 @@ extern const char* _Py_SourceAsString( PyCompilerFlags *cf, PyObject **cmd_copy); + +/* Stack size, in "pointers". This must be large enough, so + * no two calls to check recursion depth are more than this far + * apart. In practice, that means it must be larger than the C + * stack consumption of PyEval_EvalDefault */ +#if defined(_Py_ADDRESS_SANITIZER) || defined(_Py_THREAD_SANITIZER) +# define _PyOS_LOG2_STACK_MARGIN 12 +#elif defined(Py_DEBUG) && defined(WIN32) +# define _PyOS_LOG2_STACK_MARGIN 12 +#else +# define _PyOS_LOG2_STACK_MARGIN 11 +#endif +#define _PyOS_STACK_MARGIN (1 << _PyOS_LOG2_STACK_MARGIN) +#define _PyOS_STACK_MARGIN_BYTES (_PyOS_STACK_MARGIN * sizeof(void *)) + +#if SIZEOF_VOID_P == 8 +# define _PyOS_STACK_MARGIN_SHIFT (_PyOS_LOG2_STACK_MARGIN + 3) +#else +# define _PyOS_STACK_MARGIN_SHIFT (_PyOS_LOG2_STACK_MARGIN + 2) +#endif + + #ifdef __cplusplus } #endif |