Neo4j-Bolt
view release on metacpan or search on metacpan
lib/Neo4j/Bolt/NeoValue.xs view on Meta::CPAN
if (! SvOK(sv)) {
return &PL_sv_no;
}
SvGETMAGIC(sv);
if (SvROK(sv)) {
ref = SvRV(sv);
if (SvTYPE(ref) < SVt_PVAV) { // scalar ref
if (SvOBJECT(ref) && sv_isa(sv, "JSON::PP::Boolean")) {
return &PL_sv_yes;
}
if (SvIOK(ref) && SvIV(ref) >> 1 == 0) { // literal \1 or \0
return &PL_sv_yes;
}
}
}
#if PERL_VERSION_GE(5,36,0)
else if (SvIsBOOL(sv)) {
return &PL_sv_yes;
}
#endif
return &PL_sv_no;
}
void DESTROY(SV *obj) {
neo4j_value_t *val = C_PTR_OF(obj, neo4j_value_t);
return;
}
MODULE = Neo4j::Bolt::NeoValue PACKAGE = Neo4j::Bolt::NeoValue
PROTOTYPES: DISABLE
SV *
_new_from_perl (classname, v)
const char * classname
SV * v
const char *
_neotype (obj)
SV * obj
SV *
_as_perl (obj)
SV * obj
int
_map_size (obj)
SV * obj
SV *
is_bool (obj)
SV * obj
void
DESTROY (obj)
SV * obj
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
DESTROY(obj);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
XSRETURN_EMPTY; /* return empty stack */
}
/* must have used dXSARGS; list context implied */
return; /* assume stack size is correct */
( run in 0.453 second using v1.01-cache-2.11-cpan-5511b514fd6 )