"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "Python/ceval.c" between
Python-3.9.3.tar.xz and Python-3.9.4.tar.xz

About: Python is an interpreted, interactive, object-oriented programming language. It incorporates modules, exceptions, dynamic typing, very high level dynamic data types, and classes. Newest major release.

ceval.c  (Python-3.9.3.tar.xz):ceval.c  (Python-3.9.4.tar.xz)
skipping to change at line 783 skipping to change at line 783
if (PyOS_CheckStack()) { if (PyOS_CheckStack()) {
--tstate->recursion_depth; --tstate->recursion_depth;
_PyErr_SetString(tstate, PyExc_MemoryError, "Stack overflow"); _PyErr_SetString(tstate, PyExc_MemoryError, "Stack overflow");
return -1; return -1;
} }
if (_Py_IsMainInterpreter(tstate)) { if (_Py_IsMainInterpreter(tstate)) {
/* Needed for ABI backwards-compatibility (see bpo-31857) */ /* Needed for ABI backwards-compatibility (see bpo-31857) */
_Py_CheckRecursionLimit = recursion_limit; _Py_CheckRecursionLimit = recursion_limit;
} }
#endif #endif
if (tstate->recursion_headroom) { if (tstate->recursion_critical)
/* Somebody asked that we don't check for recursion. */
return 0;
if (tstate->overflowed) {
if (tstate->recursion_depth > recursion_limit + 50) { if (tstate->recursion_depth > recursion_limit + 50) {
/* Overflowing while handling an overflow. Give up. */ /* Overflowing while handling an overflow. Give up. */
Py_FatalError("Cannot recover from stack overflow."); Py_FatalError("Cannot recover from stack overflow.");
} }
return 0;
} }
else { if (tstate->recursion_depth > recursion_limit) {
if (tstate->recursion_depth > recursion_limit) { --tstate->recursion_depth;
tstate->recursion_headroom++; tstate->overflowed = 1;
_PyErr_Format(tstate, PyExc_RecursionError, _PyErr_Format(tstate, PyExc_RecursionError,
"maximum recursion depth exceeded%s", "maximum recursion depth exceeded%s",
where); where);
tstate->recursion_headroom--; return -1;
--tstate->recursion_depth;
return -1;
}
} }
return 0; return 0;
} }
static int do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause); static int do_raise(PyThreadState *tstate, PyObject *exc, PyObject *cause);
static int unpack_iterable(PyThreadState *, PyObject *, int, int, PyObject **); static int unpack_iterable(PyThreadState *, PyObject *, int, int, PyObject **);
#define _Py_TracingPossible(ceval) ((ceval)->tracing_possible) #define _Py_TracingPossible(ceval) ((ceval)->tracing_possible)
PyObject * PyObject *
 End of changes. 3 change blocks. 
11 lines changed or deleted 12 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)