summaryrefslogtreecommitdiff
path: root/pp_hot.c
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2003-03-20 01:26:19 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2003-03-26 19:48:32 +0000
commit51d9a56bf5df931c436b7ede535c78bc64655187 (patch)
tree9332cda73b9729a8ee8f37a65886cef9a57d821c /pp_hot.c
parent09e367548f5622c5830617d648540b181c40aa53 (diff)
downloadperl-51d9a56bf5df931c436b7ede535c78bc64655187.tar.gz
[PATCH] Re: [perl #21542] local $_ [0] = $_ [0] fails.
Date: Thu, 20 Mar 2003 01:26:19 +0000 Message-ID: <20030320012619.C19869@fdgroup.com> Subject: Re: [PATCH] Re: [perl #21542] local $_ [0] = $_ [0] fails. From: Dave Mitchell <davem@fdgroup.com> Date: Mon, 24 Mar 2003 16:06:51 +0000 Message-ID: <20030324160651.D1798@fdgroup.com> p4raw-id: //depot/perl@19064
Diffstat (limited to 'pp_hot.c')
-rw-r--r--pp_hot.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/pp_hot.c b/pp_hot.c
index 5981a5d7a4..15ba94c041 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -2320,10 +2320,10 @@ PP(pp_leavesub)
}
PUTBACK;
+ LEAVE;
POPSUB(cx,sv); /* Stack values are safe: release CV and @_ ... */
PL_curpm = newpm; /* ... and pop $1 et al */
- LEAVE;
LEAVESUB(sv);
return pop_return();
}
@@ -2376,9 +2376,9 @@ PP(pp_leavesublv)
* the refcounts so the caller gets a live guy. Cannot set
* TEMP, so sv_2mortal is out of question. */
if (!CvLVALUE(cx->blk_sub.cv)) {
+ LEAVE;
POPSUB(cx,sv);
PL_curpm = newpm;
- LEAVE;
LEAVESUB(sv);
DIE(aTHX_ "Can't modify non-lvalue subroutine call");
}
@@ -2387,9 +2387,9 @@ PP(pp_leavesublv)
EXTEND_MORTAL(1);
if (MARK == SP) {
if (SvFLAGS(TOPs) & (SVs_TEMP | SVs_PADTMP | SVf_READONLY)) {
+ LEAVE;
POPSUB(cx,sv);
PL_curpm = newpm;
- LEAVE;
LEAVESUB(sv);
DIE(aTHX_ "Can't return %s from lvalue subroutine",
SvREADONLY(TOPs) ? (TOPs == &PL_sv_undef) ? "undef"
@@ -2402,9 +2402,9 @@ PP(pp_leavesublv)
}
}
else { /* Should not happen? */
+ LEAVE;
POPSUB(cx,sv);
PL_curpm = newpm;
- LEAVE;
LEAVESUB(sv);
DIE(aTHX_ "%s returned from lvalue subroutine in scalar context",
(MARK > SP ? "Empty array" : "Array"));
@@ -2418,9 +2418,9 @@ PP(pp_leavesublv)
&& SvFLAGS(*mark) & (SVs_TEMP | SVs_PADTMP | SVf_READONLY)) {
/* Might be flattened array after $#array = */
PUTBACK;
+ LEAVE;
POPSUB(cx,sv);
PL_curpm = newpm;
- LEAVE;
LEAVESUB(sv);
DIE(aTHX_ "Can't return a %s from lvalue subroutine",
SvREADONLY(TOPs) ? "readonly value" : "temporary");
@@ -2472,10 +2472,10 @@ PP(pp_leavesublv)
}
PUTBACK;
+ LEAVE;
POPSUB(cx,sv); /* Stack values are safe: release CV and @_ ... */
PL_curpm = newpm; /* ... and pop $1 et al */
- LEAVE;
LEAVESUB(sv);
return pop_return();
}