summaryrefslogtreecommitdiff
path: root/pp_ctl.c
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-09-16 17:07:03 +0000
committerNicholas Clark <nick@ccl4.org>2006-09-16 17:07:03 +0000
commitcc8d50a7c6a04d7a7e152c0e2861bc370cc6c9e6 (patch)
treee85ad458b84c9cc33619f4a01a8dbe660d7af67c /pp_ctl.c
parent44abc943eb062867457a44655d95023ddfb75877 (diff)
downloadperl-cc8d50a7c6a04d7a7e152c0e2861bc370cc6c9e6.tar.gz
Revert changes 28772, 28773, 28774 as they won't gain us anything - I
failed to realise that struct block_sub is not the largest of the 4 structures in the block.blk_u union. (It's actually block_loop) p4raw-id: //depot/perl@28853
Diffstat (limited to 'pp_ctl.c')
-rw-r--r--pp_ctl.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/pp_ctl.c b/pp_ctl.c
index 832f189c11..15a1491109 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -1289,8 +1289,8 @@ Perl_is_lvalue_sub(pTHX)
const I32 cxix = dopoptosub(cxstack_ix);
assert(cxix >= 0); /* We should only be called from inside subs */
- if (CX_SUB_LVAL(cxstack + cxix) && CvLVALUE(cxstack[cxix].blk_sub.cv))
- return CX_SUB_LVAL(cxstack + cxix);
+ if (cxstack[cxix].blk_sub.lval && CvLVALUE(cxstack[cxix].blk_sub.cv))
+ return cxstack[cxix].blk_sub.lval;
else
return 0;
}
@@ -1641,11 +1641,11 @@ PP(pp_caller)
SV * const sv = newSV(0);
gv_efullname3(sv, cvgv, NULL);
PUSHs(sv_2mortal(sv));
- PUSHs(sv_2mortal(newSViv((I32)CX_SUB_HASARGS_GET(cx))));
+ PUSHs(sv_2mortal(newSViv((I32)cx->blk_sub.hasargs)));
}
else {
PUSHs(sv_2mortal(newSVpvs("(unknown)")));
- PUSHs(sv_2mortal(newSViv((I32)CX_SUB_HASARGS_GET(cx))));
+ PUSHs(sv_2mortal(newSViv((I32)cx->blk_sub.hasargs)));
}
}
else {
@@ -1678,7 +1678,7 @@ PP(pp_caller)
PUSHs(&PL_sv_undef);
PUSHs(&PL_sv_undef);
}
- if (CxTYPE(cx) == CXt_SUB && CX_SUB_HASARGS_GET(cx)
+ if (CxTYPE(cx) == CXt_SUB && cx->blk_sub.hasargs
&& CopSTASH_eq(PL_curcop, PL_debstash))
{
AV * const ary = cx->blk_sub.argarray;
@@ -2348,7 +2348,7 @@ PP(pp_goto)
}
else if (CxMULTICALL(cx))
DIE(aTHX_ "Can't goto subroutine from a sort sub (or similar callback)");
- if (CxTYPE(cx) == CXt_SUB && CX_SUB_HASARGS_GET(cx)) {
+ if (CxTYPE(cx) == CXt_SUB && cx->blk_sub.hasargs) {
/* put @_ back onto stack */
AV* av = cx->blk_sub.argarray;
@@ -2410,7 +2410,7 @@ PP(pp_goto)
PL_in_eval = cx->blk_eval.old_in_eval;
PL_eval_root = cx->blk_eval.old_eval_root;
cx->cx_type = CXt_SUB;
- CX_SUB_HASARGS_SET(cx, 0);
+ cx->blk_sub.hasargs = 0;
}
cx->blk_sub.cv = cv;
cx->blk_sub.olddepth = CvDEPTH(cv);
@@ -2425,7 +2425,7 @@ PP(pp_goto)
}
SAVECOMPPAD();
PAD_SET_CUR_NOSAVE(padlist, CvDEPTH(cv));
- if (CX_SUB_HASARGS_GET(cx))
+ if (cx->blk_sub.hasargs)
{
AV* const av = (AV*)PAD_SVl(0);