diff options
author | David Mitchell <davem@iabyn.com> | 2012-11-13 13:12:31 +0000 |
---|---|---|
committer | David Mitchell <davem@iabyn.com> | 2012-11-15 22:41:07 +0000 |
commit | 9bfff044fcc48966837632e29148ad2648fe62ef (patch) | |
tree | 1dd3676cf6d4e93ab18a7bdc900af78bc7911ddc /pp_hot.c | |
parent | fcef60b407682ad7861f3c827053d6345b02bf20 (diff) | |
download | perl-9bfff044fcc48966837632e29148ad2648fe62ef.tar.gz |
pp_iter: refactor CXt_LOOP_LAZYSV branch
Diffstat (limited to 'pp_hot.c')
-rw-r--r-- | pp_hot.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -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); } |