[Python-Dev] The purpose of SETUP_LOOP, BREAK_LOOP, CONTINUE_LOOP
P.J. Eby
pje at telecommunity.com
Sat Mar 12 20:04:07 CET 2011
More information about the Python-Dev mailing list
Sat Mar 12 20:04:07 CET 2011
- Previous message: [Python-Dev] The purpose of SETUP_LOOP, BREAK_LOOP, CONTINUE_LOOP
- Next message: [Python-Dev] The purpose of SETUP_LOOP, BREAK_LOOP, CONTINUE_LOOP
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
At 08:25 AM 3/12/2011 -0500, Eugene Toder wrote: >Right, I'm not suggesting to remove all blocks, only SETUP_LOOP >blocks. Do you see the problem in that case? I think you guys are forgetting about FOR_ITER, listcomps, and the like. That is, IIRC, the reason loops use the block stack is because they put things on the regular stack, that need to be cleared off the stack when the loop is exited (whether normally or via an exception). In other words, just jumping out of a loop without popping the block stack would leave junk on the regular stack, thereby failing to deallocate the loop iterator. In the case of a nested loop, this would also mean that the outer loop would start using the inner loop's iterator, and all sorts of hilarity would then ensue.
- Previous message: [Python-Dev] The purpose of SETUP_LOOP, BREAK_LOOP, CONTINUE_LOOP
- Next message: [Python-Dev] The purpose of SETUP_LOOP, BREAK_LOOP, CONTINUE_LOOP
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list