mirror of
https://github.com/python/cpython.git
synced 2025-07-08 20:05:28 +00:00
Use static inline function Py_EnterRecursiveCall() (#91988)
Currently, calling Py_EnterRecursiveCall() and Py_LeaveRecursiveCall() may use a function call or a static inline function call, depending if the internal pycore_ceval.h header file is included or not. Use a different name for the static inline function to ensure that the static inline function is always used in Python internals for best performance. Similar approach than PyThreadState_GET() (function call) and _PyThreadState_GET() (static inline function). * Rename _Py_EnterRecursiveCall() to _Py_EnterRecursiveCallTstate() * Rename _Py_LeaveRecursiveCall() to _Py_LeaveRecursiveCallTstate() * pycore_ceval.h: Rename Py_EnterRecursiveCall() to _Py_EnterRecursiveCall() and Py_LeaveRecursiveCall() and _Py_LeaveRecursiveCall()
This commit is contained in:
parent
14243369b5
commit
d716a0dfe2
15 changed files with 524 additions and 521 deletions
|
@ -13,6 +13,7 @@
|
|||
#include "Python.h"
|
||||
|
||||
#include "pycore_ast.h" // PyAST_mod2obj
|
||||
#include "pycore_ceval.h" // _Py_EnterRecursiveCall
|
||||
#include "pycore_compile.h" // _PyAST_Compile()
|
||||
#include "pycore_interp.h" // PyInterpreterState.importlib
|
||||
#include "pycore_object.h" // _PyDebug_PrintTotalRefs()
|
||||
|
@ -1268,13 +1269,13 @@ print_chained(struct exception_print_context* ctx, PyObject *value,
|
|||
{
|
||||
PyObject *f = ctx->file;
|
||||
|
||||
if (Py_EnterRecursiveCall(" in print_chained") < 0) {
|
||||
if (_Py_EnterRecursiveCall(" in print_chained") < 0) {
|
||||
return -1;
|
||||
}
|
||||
bool need_close = ctx->need_close;
|
||||
int res = print_exception_recursive(ctx, value);
|
||||
ctx->need_close = need_close;
|
||||
Py_LeaveRecursiveCall();
|
||||
_Py_LeaveRecursiveCall();
|
||||
if (res < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
@ -1445,11 +1446,11 @@ print_exception_group(struct exception_print_context *ctx, PyObject *value)
|
|||
PyObject *exc = PyTuple_GET_ITEM(excs, i);
|
||||
|
||||
if (!truncated) {
|
||||
if (Py_EnterRecursiveCall(" in print_exception_group") != 0) {
|
||||
if (_Py_EnterRecursiveCall(" in print_exception_group") != 0) {
|
||||
return -1;
|
||||
}
|
||||
int res = print_exception_recursive(ctx, exc);
|
||||
Py_LeaveRecursiveCall();
|
||||
_Py_LeaveRecursiveCall();
|
||||
if (res < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue