summaryrefslogtreecommitdiff
path: root/pp.c
diff options
context:
space:
mode:
authorBrandon Black <blblack@gmail.com>2007-08-12 06:36:14 -0700
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2007-08-31 09:07:51 +0000
commit89c14e2ec1b845cd5ec17986d2c65288a7da7ba8 (patch)
tree49daca85a19bfaf40679d19633871f2933add12b /pp.c
parent53e0272ff6711924ddbd8568bad2a01574e7b545 (diff)
downloadperl-89c14e2ec1b845cd5ec17986d2c65288a7da7ba8.tar.gz
Re: optimize push @ISA, (was Re: parent.pm at http://corion.net/perl-dev)
From: "Brandon Black" <blblack@gmail.com> Message-ID: <84621a60708121336m13dcf9e5uac624fb246f2a79c@mail.gmail.com> p4raw-id: //depot/perl@31770
Diffstat (limited to 'pp.c')
-rw-r--r--pp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/pp.c b/pp.c
index 5171e57569..dbfc95c567 100644
--- a/pp.c
+++ b/pp.c
@@ -4420,12 +4420,17 @@ PP(pp_push)
PUSHi( AvFILL(ary) + 1 );
}
else {
+ PL_delaymagic = DM_DELAY;
for (++MARK; MARK <= SP; MARK++) {
SV * const sv = newSV(0);
if (*MARK)
sv_setsv(sv, *MARK);
av_store(ary, AvFILLp(ary)+1, sv);
}
+ if (PL_delaymagic & DM_ARRAY)
+ mg_set((SV*)ary);
+
+ PL_delaymagic = 0;
SP = ORIGMARK;
PUSHi( AvFILLp(ary) + 1 );
}