mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-03-19 04:52:59 +01:00
Micro optimizations
This commit is contained in:
parent
6981234736
commit
d36543b204
@ -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)
|
STATIC_INLINE int template_callback_array(unpack_user* u PERL_UNUSED_DECL, unsigned int n, SV** o)
|
||||||
{
|
{
|
||||||
dTHX;
|
dTHX;
|
||||||
AV* a = (AV*)sv_2mortal((SV*)newAV());
|
AV* const a = newAV();
|
||||||
*o = sv_2mortal((SV*)newRV_inc((SV*)a));
|
*o = sv_2mortal(newRV_noinc((SV*)a));
|
||||||
av_extend(a, n);
|
av_extend(a, n + 1);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,15 +167,15 @@ STATIC_INLINE int template_callback_array_item(unpack_user* u PERL_UNUSED_DECL,
|
|||||||
{
|
{
|
||||||
dTHX;
|
dTHX;
|
||||||
av_push((AV*)SvRV(*c), o);
|
av_push((AV*)SvRV(*c), o);
|
||||||
SvREFCNT_inc(o);
|
SvREFCNT_inc_simple_void_NN(o);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
STATIC_INLINE int template_callback_map(unpack_user* u PERL_UNUSED_DECL, unsigned int n PERL_UNUSED_DECL, SV** o)
|
STATIC_INLINE int template_callback_map(unpack_user* u PERL_UNUSED_DECL, unsigned int n PERL_UNUSED_DECL, SV** o)
|
||||||
{
|
{
|
||||||
dTHX;
|
dTHX;
|
||||||
HV* h = (HV*)sv_2mortal((SV*)newHV());
|
HV* const h = newHV();
|
||||||
*o = sv_2mortal(newRV_inc((SV*)h));
|
*o = sv_2mortal(newRV_noinc((SV*)h));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -183,7 +183,7 @@ STATIC_INLINE int template_callback_map_item(unpack_user* u PERL_UNUSED_DECL, SV
|
|||||||
{
|
{
|
||||||
dTHX;
|
dTHX;
|
||||||
(void)hv_store_ent((HV*)SvRV(*c), k, v, 0);
|
(void)hv_store_ent((HV*)SvRV(*c), k, v, 0);
|
||||||
SvREFCNT_inc(v);
|
SvREFCNT_inc_simple_void_NN(v);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user