Commit 60590302 authored by Benjamin Peterson's avatar Benjamin Peterson

apply a fix for #3611 where the current exception context was deleted with a...

apply a fix for #3611 where the current exception context was deleted with a generator causing a segfault
parent 2f2ea2f6
......@@ -564,6 +564,28 @@ class ExceptionTests(unittest.TestCase):
pass
self.assertEquals(e, (None, None, None))
def test_3118(self):
def gen():
try:
yield 1
finally:
pass
def f():
g = gen()
next(g)
try:
try:
raise ValueError
except:
del g
raise KeyError
except Exception as e:
self.assert_(isinstance(e.__context__, ValueError))
f()
def test_badisinstance(self):
# Bug #2542: if issubclass(e, MyException) raises an exception,
# it should be ignored
......
......@@ -2453,7 +2453,7 @@ fast_block_end:
if (b->b_type == EXCEPT_HANDLER) {
UNWIND_EXCEPT_HANDLER(b);
if (why == WHY_EXCEPTION) {
if (why == WHY_EXCEPTION && !throwflag) {
Py_CLEAR(tstate->exc_type);
Py_CLEAR(tstate->exc_value);
Py_CLEAR(tstate->exc_traceback);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment