Closed
Description
There is an optimization in gen_close which attempts to shortcut the case where a sub-generator is being closed, and it is wrapped in only one try block (which is presumed to be for the StopIteration
so can be ignored).
However, there is a bug there where the exception depth is taken from frame->prev_instr[0].op.code
, where it should be frame->prev_instr[0].op.arg
.
At the moment this optimization is not doing anything because exception_handler_depth
is never 1, it is either 118 (opcode of YIELD_VALUE
) or 241 (opcode of INSTRUMENTED_YIELD_VALUE
). If one of those opcodes will happen to be mapped to 1, then this code will have some impact but obviously not the intended one.
CC @markshannon