In leavewhen, put the SP back when returning
authorVincent Pit <perl@profvince.com>
Mon, 27 Jun 2011 07:37:30 +0000 (09:37 +0200)
committerVincent Pit <perl@profvince.com>
Mon, 27 Jun 2011 07:37:33 +0000 (09:37 +0200)
It may have changed in adjust_stack_on_leave() if the stack needed to be
extended.

pp_ctl.c

index c442d0b..c5cf973 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -4998,8 +4998,7 @@ PP(pp_leavewhen)
        return cx->blk_loop.my_op->op_nextop;
     }
     else
-       /* RETURNOP calls PUTBACK which restores the old old sp */
-       return cx->blk_givwhen.leave_op;
+       RETURNOP(cx->blk_givwhen.leave_op);
 }
 
 PP(pp_continue)