[Python-Dev] Is it safe to call PyEval_EvalFrameEx() with an exception set? (original) (raw)
Victor Stinner victor.stinner at gmail.com
Wed Jul 17 01:08:31 CEST 2013
- Previous message: [Python-Dev] Is it safe to call PyEval_EvalFrameEx() with an exception set?
- Next message: [Python-Dev] [Python-checkins] cpython (merge default -> 3.3): merge 3.3 (#18470)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2013/7/16 Victor Stinner <victor.stinner at gmail.com>:
I would like to add assertions in Python/ceval.c to detect such bugs earlier. The problem is that some functions rely on the ability to call PyEvalEvalFrameEx() with an exception set. Is it expected? Should it be avoided? The current exception can be replaced with a new exception.
Another example. Py_ReprLeave() function can be called while an exception is set. I'm not sure that it is "safe" to call new code while an exception is set.
The function can raise a new exception. For example, PyList_SetSlice() can fail because of a MemoryError.
I modified Py_ReprLeave() to save and then restore the current exception: http://hg.python.org/cpython/rev/28ff7ac91477
If Py_ReprLeave() raises a new exception, it is clears (replaced by the previous exception context).
Victor
- Previous message: [Python-Dev] Is it safe to call PyEval_EvalFrameEx() with an exception set?
- Next message: [Python-Dev] [Python-checkins] cpython (merge default -> 3.3): merge 3.3 (#18470)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]