Skip to content

Commit dcab4dd

Browse files
committed
pp_push - do newSVsv_flags directly
1 parent dfaf1f0 commit dcab4dd

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

pp.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6421,10 +6421,12 @@ PP(pp_push)
64216421
PL_delaymagic = DM_DELAY;
64226422
for (++MARK; MARK <= PL_stack_sp; MARK++) {
64236423
SV *sv;
6424-
if (*MARK) SvGETMAGIC(*MARK);
6425-
sv = newSV_type(SVt_NULL);
6426-
if (*MARK)
6427-
sv_setsv_nomg(sv, *MARK);
6424+
if (*MARK) {
6425+
SvGETMAGIC(*MARK);
6426+
sv = newSVsv_flags(*MARK, SV_DO_COW_SVSETSV);
6427+
} else {
6428+
sv = newSV_type(SVt_NULL);
6429+
}
64286430
av_store(ary, AvFILLp(ary)+1, sv);
64296431
}
64306432
if (PL_delaymagic & DM_ARRAY_ISA)

0 commit comments

Comments
 (0)