summaryrefslogtreecommitdiff
path: root/pp_hot.c
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2012-11-13 13:12:31 +0000
committerDavid Mitchell <davem@iabyn.com>2012-11-15 22:41:07 +0000
commit9bfff044fcc48966837632e29148ad2648fe62ef (patch)
tree1dd3676cf6d4e93ab18a7bdc900af78bc7911ddc /pp_hot.c
parentfcef60b407682ad7861f3c827053d6345b02bf20 (diff)
downloadperl-9bfff044fcc48966837632e29148ad2648fe62ef.tar.gz
pp_iter: refactor CXt_LOOP_LAZYSV branch
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 25c38106b6..3967b9c876 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -1917,16 +1917,16 @@ PP(pp_iter)
if (SvNIOK(cur) || SvCUR(cur) > maxlen)
RETPUSHNO;
- if (SvREFCNT(*itersvp) == 1 && !SvMAGICAL(*itersvp)) {
+ oldsv = *itersvp;
+ if (SvREFCNT(oldsv) == 1 && !SvMAGICAL(oldsv)) {
/* safe to reuse old SV */
- sv_setsv(*itersvp, cur);
+ sv_setsv(oldsv, cur);
}
else
{
/* we need a fresh SV every time so that loop body sees a
* completely new SV for closures/references to work as
* they used to */
- oldsv = *itersvp;
*itersvp = newSVsv(cur);
SvREFCNT_dec(oldsv);
}