From: Bob Rogers <[EMAIL PROTECTED]>
Date: Fri, 6 Jan 2006 23:22:19 -0500
If sub A pushes an error handler and then calls B, B can do a
'clear_eh' to get rid of A's handler. This seems to work until B
returns, at which point the control stack unwinding done by
RetContinuation destroys the rest of the stack looking for the missing
handler. The patch detects the problem in clear_eh, and signals a
real_exception . . .
You could also argue that the stack unwinding in
RetContinuation.invoke is broken. I tend to agree, but any such fix
would be superceded by an implemention of rezipping. This pop_exception
fix might also have to change, but probably only in detail.
Just in case this patch is still under consideration, I would like to
withdraw it; I think it's better to include it as part of the
rezipping-related control stack cleanup (the design rev for which is
still in progress). Unless somebody would like to see a patch with just
the test cases, both marked 'TODO'?
-- Bob Rogers
http://rgrjr.dyndns.org/