summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Leach <richardleach@users.noreply.github.com>2022-07-14 16:20:28 +0000
committerPaul Evans <leonerd@leonerd.org.uk>2022-07-20 14:08:25 +0100
commitf98a2322bc85e4c02c26642730743969df0937bb (patch)
treead28519b99587fd7a6190849b5688fa61a5de9e4
parent80c024ac46cfd7ea9195a681104a2c19cc18dcbf (diff)
downloadperl-f98a2322bc85e4c02c26642730743969df0937bb.tar.gz
newAVhv - av_push_simple for faster ret array assignments
-rw-r--r--av.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/av.c b/av.c
index a990e13c55..d807c8695a 100644
--- a/av.c
+++ b/av.c
@@ -523,7 +523,7 @@ Perl_newAVhv(pTHX_ HV *ohv)
bool tied = SvRMAGICAL(ohv) && mg_find(MUTABLE_SV(ohv), PERL_MAGIC_tied);
- U32 nkeys = hv_iterinit(ohv);
+ Size_t nkeys = hv_iterinit(ohv);
/* This number isn't perfect but it doesn't matter; it only has to be
* close to make the initial allocation about the right size
*/
@@ -538,12 +538,12 @@ Perl_newAVhv(pTHX_ HV *ohv)
HE *he;
while((he = hv_iternext(ohv))) {
if(tied) {
- av_push(ret, newSVsv(hv_iterkeysv(he)));
- av_push(ret, newSVsv(hv_iterval(ohv, he)));
+ av_push_simple(ret, newSVsv(hv_iterkeysv(he)));
+ av_push_simple(ret, newSVsv(hv_iterval(ohv, he)));
}
else {
- av_push(ret, newSVhek(HeKEY_hek(he)));
- av_push(ret, HeVAL(he) ? newSVsv(HeVAL(he)) : &PL_sv_undef);
+ av_push_simple(ret, newSVhek(HeKEY_hek(he)));
+ av_push_simple(ret, HeVAL(he) ? newSVsv(HeVAL(he)) : &PL_sv_undef);
}
}