summaryrefslogtreecommitdiffstats
path: root/Python/ceval.c
diff options
context:
space:
mode:
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-08-29 07:13:32 (GMT)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>2008-08-29 07:13:32 (GMT)
commitdb26f7c13748db526e52501d3ba2856a6e30c7a5 (patch)
tree543064580b5daedb94549cb8bcf5396172492f6b /Python/ceval.c
parent4f3c5616ccb880f8b5602c2da5c8951b55e4e9dd (diff)
downloadcpython-db26f7c13748db526e52501d3ba2856a6e30c7a5.zip
cpython-db26f7c13748db526e52501d3ba2856a6e30c7a5.tar.gz
cpython-db26f7c13748db526e52501d3ba2856a6e30c7a5.tar.bz2
Issue 3611: in some cases (a __del__ re-raising an exception, when called from inside
an 'except' clause), the exception __context__ would be reset to None. This crases the interpreter if this precisely happens inside PyErr_SetObject. - now the __context__ is properly preserved - in any case, PyErr_SetObject now saves the current exc_value in a local variable, to avoid such crashes in the future. Reviewer: Antoine Pitrou.
Diffstat (limited to 'Python/ceval.c')
-rw-r--r--Python/ceval.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/Python/ceval.c b/Python/ceval.c
index 3af0cef..42df3cb 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -2453,11 +2453,6 @@ fast_block_end:
if (b->b_type == EXCEPT_HANDLER) {
UNWIND_EXCEPT_HANDLER(b);
- if (why == WHY_EXCEPTION && !throwflag) {
- Py_CLEAR(tstate->exc_type);
- Py_CLEAR(tstate->exc_value);
- Py_CLEAR(tstate->exc_traceback);
- }
continue;
}
UNWIND_BLOCK(b);