diff options
| author | Victor Stinner <victor.stinner@haypocalc.com> | 2011-02-21 21:05:50 +0000 |
|---|---|---|
| committer | Victor Stinner <victor.stinner@haypocalc.com> | 2011-02-21 21:05:50 +0000 |
| commit | 313459bc23e59254ad32059385f99cb0d80feecb (patch) | |
| tree | 0c69c8dd6d52643d48af8678cdc35ced5c214d78 | |
| parent | 1a4d1425e9fb0114e0b41df2dd252b4bdda0495e (diff) | |
| download | cpython-313459bc23e59254ad32059385f99cb0d80feecb.tar.gz | |
Remove filename variable from ceval.c
Issue #11168: Remove filename debug variable from PyEval_EvalFrameEx().
It encoded the Unicode filename to UTF-8, but the encoding fails on
undecodable filename (on surrogate characters) which raises an unexpected
UnicodeEncodeError on recursion limit.
| -rw-r--r-- | Misc/NEWS | 7 | ||||
| -rw-r--r-- | Python/ceval.c | 16 |
2 files changed, 6 insertions, 17 deletions
@@ -10,12 +10,17 @@ What's New in Python 3.3 Alpha 1? Core and Builtins ----------------- -- Check for NULL result in PyType_FromSpec. +- Issue #11168: Remove filename debug variable from PyEval_EvalFrameEx(). + It encoded the Unicode filename to UTF-8, but the encoding fails on + undecodable filename (on surrogate characters) which raises an unexpected + UnicodeEncodeError on recursion limit. - Issue #11187: Remove bootstrap code (use ASCII) of PyUnicode_AsEncodedString(), it was replaced by a better fallback (use the locale encoding) in PyUnicode_EncodeFSDefault(). +- Check for NULL result in PyType_FromSpec. + Library ------- diff --git a/Python/ceval.c b/Python/ceval.c index f6d4b0b84b..c10a2ff594 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -811,10 +811,6 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) unsigned char *first_instr; PyObject *names; PyObject *consts; -#if defined(Py_DEBUG) || defined(LLTRACE) - /* Make it easier to find out where we are with a debugger */ - char *filename; -#endif /* Computed GOTOs, or the-optimization-commonly-but-improperly-known-as-"threaded code" @@ -1227,18 +1223,6 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) #ifdef LLTRACE lltrace = PyDict_GetItemString(f->f_globals, "__lltrace__") != NULL; #endif -#if defined(Py_DEBUG) || defined(LLTRACE) - { - PyObject *error_type, *error_value, *error_traceback; - PyErr_Fetch(&error_type, &error_value, &error_traceback); - filename = _PyUnicode_AsString(co->co_filename); - if (filename == NULL && tstate->overflowed) { - /* maximum recursion depth exceeded */ - goto exit_eval_frame; - } - PyErr_Restore(error_type, error_value, error_traceback); - } -#endif why = WHY_NOT; err = 0; |
