BSON-XS
view release on metacpan or search on metacpan
join_exact|||
keyword_plugin_standard|||
keyword|||
leave_scope|||
lex_stuff_pvs||5.013005|
listkids|||
list|||
load_module_nocontext|||vn
load_module|5.006000||pv
localize|||
looks_like_bool|||
looks_like_number|||
lop|||
mPUSHi|5.009002||p
mPUSHn|5.009002||p
mPUSHp|5.009002||p
mPUSHs|5.010001||p
mPUSHu|5.009002||p
mXPUSHi|5.009002||p
mXPUSHn|5.009002||p
mXPUSHp|5.009002||p
mXPUSHs|5.010001||p
#if PERL_REVISION==5 && PERL_VERSION<=18
/* Before 5.18, get magic would clear public flags. This restores them
* from private flags but ONLY if there is no public flag already, as
* we have nothing else to go on for serialization.
*/
if (!(SvFLAGS(sv) & (SVf_IOK|SVf_NOK|SVf_POK))) {
SvFLAGS(sv) |= (SvFLAGS(sv) & (SVp_IOK|SVp_NOK|SVp_POK)) >> PRIVSHIFT;
}
#endif
I32 is_number = looks_like_number(sv);
if ( SvNOK(sv) ) {
bson_append_double(bson, key, -1, (double)SvNV(sv));
} else if ( SvIOK(sv) ) {
append_fit_int(bson, key, sv);
} else if ( prefer_numeric && is_number ) {
/* copy to avoid modifying flags of the original */
tempsv = sv_2mortal(newSVsv(sv));
if (is_number & IS_NUMBER_NOT_INT) { /* double */
bson_append_double(bson, key, -1, (double)SvNV(tempsv));
( run in 0.466 second using v1.01-cache-2.11-cpan-64827b87656 )