From d36543b20419fa87ec71c42ee5f80ca1e03f71a1 Mon Sep 17 00:00:00 2001 From: gfx Date: Wed, 15 Sep 2010 13:12:17 +0900 Subject: [PATCH] Micro optimizations --- perl/xs-src/unpack.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/perl/xs-src/unpack.c b/perl/xs-src/unpack.c index 4d4e965c..0a79ef5f 100644 --- a/perl/xs-src/unpack.c +++ b/perl/xs-src/unpack.c @@ -157,9 +157,9 @@ STATIC_INLINE int template_callback_false(unpack_user* u PERL_UNUSED_DECL, SV** STATIC_INLINE int template_callback_array(unpack_user* u PERL_UNUSED_DECL, unsigned int n, SV** o) { dTHX; - AV* a = (AV*)sv_2mortal((SV*)newAV()); - *o = sv_2mortal((SV*)newRV_inc((SV*)a)); - av_extend(a, n); + AV* const a = newAV(); + *o = sv_2mortal(newRV_noinc((SV*)a)); + av_extend(a, n + 1); return 0; } @@ -167,15 +167,15 @@ STATIC_INLINE int template_callback_array_item(unpack_user* u PERL_UNUSED_DECL, { dTHX; av_push((AV*)SvRV(*c), o); - SvREFCNT_inc(o); + SvREFCNT_inc_simple_void_NN(o); return 0; } STATIC_INLINE int template_callback_map(unpack_user* u PERL_UNUSED_DECL, unsigned int n PERL_UNUSED_DECL, SV** o) { dTHX; - HV* h = (HV*)sv_2mortal((SV*)newHV()); - *o = sv_2mortal(newRV_inc((SV*)h)); + HV* const h = newHV(); + *o = sv_2mortal(newRV_noinc((SV*)h)); return 0; } @@ -183,7 +183,7 @@ STATIC_INLINE int template_callback_map_item(unpack_user* u PERL_UNUSED_DECL, SV { dTHX; (void)hv_store_ent((HV*)SvRV(*c), k, v, 0); - SvREFCNT_inc(v); + SvREFCNT_inc_simple_void_NN(v); return 0; }