DEBUG_CX("PUSH");
/* Exit a block (RETURN and LAST). */
-#define POPBLOCK(cx,pm) \
+#define POPBLOCK(cx) \
DEBUG_CX("POP"); \
PL_curcop = cx->blk_oldcop, \
PL_markstack_ptr = PL_markstack + cx->blk_oldmarksp, \
PL_scopestack_ix = cx->blk_oldscopesp, \
- pm = cx->blk_oldpm;
+ PL_curpm = cx->blk_oldpm;
/* Continue a block elsewhere (NEXT and REDO). */
#define TOPBLOCK(cx) \
/* these two set for backcompat by callers */ \
newsp = PL_stack_base + cx->blk_oldsp; \
gimme = cx->blk_gimme; \
- POPBLOCK(cx,PL_curpm); \
+ POPBLOCK(cx); \
cxstack_ix--; \
POPSTACK; \
CATCH_SET(multicall_oldcatch); \
}
POPEVAL(cx);
- POPBLOCK(cx,PL_curpm);
+ POPBLOCK(cx);
cxstack_ix--;
namesv = cx->blk_eval.old_namesv;
#ifdef DEBUGGING
{
PERL_CONTEXT *cx;
SV **newsp;
- PMOP *newpm;
I32 gimme;
cx = &cxstack[cxstack_ix];
PL_op->op_private & OPpLVALUE);
POPBASICBLK(cx);
- POPBLOCK(cx,newpm);
- PL_curpm = newpm; /* Don't pop $1 et al till now */
+ POPBLOCK(cx);
cxstack_ix--;
return NORMAL;
PERL_CONTEXT *cx;
I32 gimme;
SV **newsp;
- PMOP *newpm;
SV **mark;
cx = &cxstack[cxstack_ix];
PL_op->op_private & OPpLVALUE);
POPLOOP(cx); /* Stack values are safe: release loop vars ... */
- POPBLOCK(cx,newpm);
- PL_curpm = newpm; /* ... and pop $1 et al */
+ POPBLOCK(cx);
cxstack_ix--;
return NORMAL;
dSP;
SV **newsp;
SV **mark;
- PMOP *newpm;
I32 gimme;
PERL_CONTEXT *cx;
bool ref;
PUTBACK;
POPSUB(cx); /* Stack values are safe: release CV and @_ ... */
- POPBLOCK(cx,newpm);
- PL_curpm = newpm; /* ... and pop $1 et al */
+ POPBLOCK(cx);
cxstack_ix--;
return cx->blk_sub.retop;
PP(pp_last)
{
PERL_CONTEXT *cx;
- PMOP *newpm;
S_unwind_loop(aTHX_ "last");
/* Stack values are safe: */
POPLOOP(cx); /* release loop vars ... */
- POPBLOCK(cx,newpm);
- PL_curpm = newpm; /* ... and pop $1 et al */
+ POPBLOCK(cx);
cxstack_ix--;
return cx->blk_loop.my_op->op_lastop->op_next;
SP = PL_stack_base + POPMARK; /* pop original mark */
cx = &cxstack[cxstack_ix];
POPEVAL(cx);
- POPBLOCK(cx,PL_curpm);
+ POPBLOCK(cx);
cxstack_ix--;
namesv = cx->blk_eval.old_namesv;
}
{
dSP;
SV **newsp;
- PMOP *newpm;
I32 gimme;
PERL_CONTEXT *cx;
OP *retop;
*/
PL_curcop = cx->blk_oldcop;
POPEVAL(cx);
- POPBLOCK(cx,newpm);
- PL_curpm = newpm; /* Don't pop $1 et al till now */
+ POPBLOCK(cx);
cxstack_ix--;
namesv = cx->blk_eval.old_namesv;
retop = cx->blk_eval.retop;
void
Perl_delete_eval_scope(pTHX)
{
- PMOP *newpm;
PERL_CONTEXT *cx;
I32 optype;
cx = &cxstack[cxstack_ix];
POPEVAL(cx);
- POPBLOCK(cx,newpm);
- PL_curpm = newpm;
+ POPBLOCK(cx);
cxstack_ix--;
PERL_UNUSED_VAR(optype);
}
PP(pp_leavetry)
{
SV **newsp;
- PMOP *newpm;
I32 gimme;
PERL_CONTEXT *cx;
I32 optype;
else
leave_common(newsp, newsp, gimme, SVs_PADTMP|SVs_TEMP, FALSE);
POPEVAL(cx);
- POPBLOCK(cx,newpm);
+ POPBLOCK(cx);
cxstack_ix--;
retop = cx->blk_eval.retop;
PERL_UNUSED_VAR(optype);
- PL_curpm = newpm; /* Don't pop $1 et al till now */
-
CLEAR_ERRSV();
return retop;
}
PERL_CONTEXT *cx;
I32 gimme;
SV **newsp;
- PMOP *newpm;
PERL_UNUSED_CONTEXT;
cx = &cxstack[cxstack_ix];
else
leave_common(newsp, newsp, gimme, SVs_PADTMP|SVs_TEMP, FALSE);
POPGIVEN(cx);
- POPBLOCK(cx,newpm);
- PL_curpm = newpm; /* Don't pop $1 et al till now */
+ POPBLOCK(cx);
cxstack_ix--;
return NORMAL;
{
I32 cxix;
PERL_CONTEXT *cx;
- PMOP *newpm;
-
cxix = dopoptowhen(cxstack_ix);
if (cxix < 0)
assert(CxTYPE(cx) == CXt_WHEN);
PL_stack_sp = PL_stack_base + cx->blk_oldsp;
POPWHEN(cx);
- POPBLOCK(cx,newpm);
- PL_curpm = newpm; /* pop $1 et al */
+ POPBLOCK(cx);
cxstack_ix--;
return cx->blk_givwhen.leave_op->op_next;