From e92c6be8349ad1d36d6df1dcb526fd37421e9970 Mon Sep 17 00:00:00 2001 From: Nicholas Clark Date: Tue, 19 May 2009 09:15:46 +0100 Subject: In perl_clone_using(), use sv_dup_inc_multiple() to clone the temps stack. Avoid using Newxz() to zero allocate memory we will immediately overwrite. --- sv.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'sv.c') diff --git a/sv.c b/sv.c index c7468ecd80..6e7fbd40a0 100644 --- a/sv.c +++ b/sv.c @@ -12205,12 +12205,9 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags, PL_tmps_ix = proto_perl->Itmps_ix; PL_tmps_max = proto_perl->Itmps_max; PL_tmps_floor = proto_perl->Itmps_floor; - Newxz(PL_tmps_stack, PL_tmps_max, SV*); - i = 0; - while (i <= PL_tmps_ix) { - PL_tmps_stack[i] = sv_dup_inc(proto_perl->Itmps_stack[i], param); - ++i; - } + Newx(PL_tmps_stack, PL_tmps_max, SV*); + sv_dup_inc_multiple(proto_perl->Itmps_stack, PL_tmps_stack, PL_tmps_ix, + param); /* next PUSHMARK() sets *(PL_markstack_ptr+1) */ i = proto_perl->Imarkstack_max - proto_perl->Imarkstack; -- cgit v1.2.1