diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1999-07-23 15:56:04 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1999-07-23 15:56:04 +0000 |
commit | 59af01353dbbede40ae5b5d1b0330b847ffb82dc (patch) | |
tree | 35d80e0b0eafdd89028fd3a511661fbcce085826 /pp.c | |
parent | 76cd736e66383afee2dc798500e6d884d1cd0922 (diff) | |
download | perl-59af01353dbbede40ae5b5d1b0330b847ffb82dc.tar.gz |
avoid useless use of target for pp_each(); also fixes bugs due to
refcount held by the target
p4raw-id: //depot/perl@3727
Diffstat (limited to 'pp.c')
-rw-r--r-- | pp.c | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -2631,7 +2631,7 @@ PP(pp_aslice) PP(pp_each) { - djSP; dTARGET; + djSP; HV *hash = (HV*)POPs; HE *entry; I32 gimme = GIMME_V; @@ -2646,12 +2646,13 @@ PP(pp_each) if (entry) { PUSHs(hv_iterkeysv(entry)); /* won't clobber stack_sp */ if (gimme == G_ARRAY) { + SV *val; PUTBACK; /* might clobber stack_sp */ - sv_setsv(TARG, realhv ? - hv_iterval(hash, entry) : avhv_iterval((AV*)hash, entry)); + val = realhv ? + hv_iterval(hash, entry) : avhv_iterval((AV*)hash, entry); SPAGAIN; - PUSHs(TARG); + PUSHs(val); } } else if (gimme == G_SCALAR) |