summaryrefslogtreecommitdiff
path: root/pp_hot.c
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2004-07-23 09:52:59 +0000
committerDave Mitchell <davem@fdisolutions.com>2004-07-23 09:52:59 +0000
commitf39bc417872f70cd842818eabb72f1c97d78cdd2 (patch)
tree580290513860e81838a2510e5ea1fa7fc109e826 /pp_hot.c
parent0dfdcd8a63a82bd61087d84a6f130e03a4b20ed9 (diff)
downloadperl-f39bc417872f70cd842818eabb72f1c97d78cdd2.tar.gz
remove the return stack PL_retstack, and store return ops in the CX
structure directly instead p4raw-id: //depot/perl@23156
Diffstat (limited to 'pp_hot.c')
-rw-r--r--pp_hot.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/pp_hot.c b/pp_hot.c
index b170b3bd6b..752a267bd8 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -2409,7 +2409,7 @@ PP(pp_leavesub)
PL_curpm = newpm; /* ... and pop $1 et al */
LEAVESUB(sv);
- return pop_return();
+ return cx->blk_sub.retop;
}
/* This duplicates the above code because the above code must not
@@ -2567,7 +2567,7 @@ PP(pp_leavesublv)
PL_curpm = newpm; /* ... and pop $1 et al */
LEAVESUB(sv);
- return pop_return();
+ return cx->blk_sub.retop;
}
@@ -2697,9 +2697,9 @@ PP(pp_entersub)
dMARK;
register I32 items = SP - MARK;
AV* padlist = CvPADLIST(cv);
- push_return(PL_op->op_next);
PUSHBLOCK(cx, CXt_SUB, MARK);
PUSHSUB(cx);
+ cx->blk_sub.retop = PL_op->op_next;
CvDEPTH(cv)++;
/* XXX This would be a natural place to set C<PL_compcv = cv> so
* that eval'' ops within this sub know the correct lexical space.