-
-
Notifications
You must be signed in to change notification settings - Fork 33.2k
Closed
Labels
type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Using grep, I identified 3 instances in main where code checks if Py_EnterRecursiveCall(...) < 0 (which just returns _Py_EnterRecursiveCall(...)) or _Py_EnterRecursiveCall(...) < 0.
Py_EnterRecursiveCall()documentation only guarantees that a nonzero value is returned in the event of an error.- The actual implementation can't return a negative value:
cpython/Include/internal/pycore_ceval.h
Lines 130 to 138 in 7644935
| static inline int _Py_EnterRecursiveCallTstate(PyThreadState *tstate, | |
| const char *where) { | |
| return (_Py_MakeRecCheck(tstate) && _Py_CheckRecursiveCall(tstate, where)); | |
| } | |
| static inline int _Py_EnterRecursiveCall(const char *where) { | |
| PyThreadState *tstate = _PyThreadState_GET(); | |
| return _Py_EnterRecursiveCallTstate(tstate, where); | |
| } |
Linked PRs
Metadata
Metadata
Assignees
Labels
type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error