Branch Coverage

/usr/local/lib/perl5/site_perl/5.26.1/x86_64-linux/XS/Framework.x/i/xs/Sv.h
Criterion Covered Total %
branch 54 102 52.9


line true false branch
34 5 18 PANDA_GLOBAL_MEMBER_AS_PTR(PayloadMarker, payload_marker_t, get, payload_marker_t());
47 3 0 Sv (T* sv, bool policy = INCREMENT) : sv((SV*)sv) { if (policy == INCREMENT) SvREFCNT_inc_simple_void(sv); }
3 0 Sv (T* sv, bool policy = INCREMENT) : sv((SV*)sv) { if (policy == INCREMENT) SvREFCNT_inc_simple_void(sv); }
109 0 Sv (T* sv, bool policy = INCREMENT) : sv((SV*)sv) { if (policy == INCREMENT) SvREFCNT_inc_simple_void(sv); }
109 0 Sv (T* sv, bool policy = INCREMENT) : sv((SV*)sv) { if (policy == INCREMENT) SvREFCNT_inc_simple_void(sv); }
274 86 Sv (T* sv, bool policy = INCREMENT) : sv((SV*)sv) { if (policy == INCREMENT) SvREFCNT_inc_simple_void(sv); }
274 0 Sv (T* sv, bool policy = INCREMENT) : sv((SV*)sv) { if (policy == INCREMENT) SvREFCNT_inc_simple_void(sv); }
56 13 0 SvREFCNT_inc_simple_void(val);
13 0 SvREFCNT_inc_simple_void(val);
59 13 0 SvREFCNT_dec(old);
13 0 SvREFCNT_dec(old);
87 106 0 bool defined () const { return sv && SvOK(sv); }
2 104 bool defined () const { return sv && SvOK(sv); }
2 0 bool defined () const { return sv && SvOK(sv); }
0 2 bool defined () const { return sv && SvOK(sv); }
92 34 0 bool is_scalar () const { return sv && is_scalar_unsafe(); }
24 10 bool is_scalar () const { return sv && is_scalar_unsafe(); }
93 82 0 bool is_ref () const { return sv && SvROK(sv); }
69 13 bool is_ref () const { return sv && SvROK(sv); }
94 108 0 bool is_simple () const { return sv && SvTYPE(sv) <= SVt_PVMG && !SvROK(sv); }
108 0 bool is_simple () const { return sv && SvTYPE(sv) <= SVt_PVMG && !SvROK(sv); }
54 54 bool is_simple () const { return sv && SvTYPE(sv) <= SVt_PVMG && !SvROK(sv); }
96 50 0 bool is_like_number () const { return sv && looks_like_number(sv); }
6 44 bool is_like_number () const { return sv && looks_like_number(sv); }
99 2 0 bool is_hash () const { return sv && type() == SVt_PVHV; }
0 2 bool is_hash () const { return sv && type() == SVt_PVHV; }
105 54 0 bool is_object_ref () const { return is_ref() && SvOBJECT(SvRV(sv)); }
3 51 bool is_object_ref () const { return is_ref() && SvOBJECT(SvRV(sv)); }
106 0 2 bool is_stash () const { return is_hash() && HvNAME(sv); }
0 0 bool is_stash () const { return is_hash() && HvNAME(sv); }
0 0 bool is_stash () const { return is_hash() && HvNAME(sv); }
0 0 bool is_stash () const { return is_hash() && HvNAME(sv); }
0 0 bool is_stash () const { return is_hash() && HvNAME(sv); }
0 0 bool is_stash () const { return is_hash() && HvNAME(sv); }
0 0 bool is_stash () const { return is_hash() && HvNAME(sv); }
0 0 bool is_stash () const { return is_hash() && HvNAME(sv); }
110 124 0 bool is_ref_of_type (svtype type) const { return sv && SvROK(sv) && SvTYPE(SvRV(sv)) == type; }
124 0 bool is_ref_of_type (svtype type) const { return sv && SvROK(sv) && SvTYPE(SvRV(sv)) == type; }
52 72 bool is_ref_of_type (svtype type) const { return sv && SvROK(sv) && SvTYPE(SvRV(sv)) == type; }
134 3 74 if (type() < SVt_PVMG) return false;
135 78 33 for (MAGIC* mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) if (mg->mg_virtual == marker) return true;
41 37 for (MAGIC* mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) if (mg->mg_virtual == marker) return true;
140 0 27 if (type() < SVt_PVMG) return Payload();
141 40 0 for (MAGIC* mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) if (mg->mg_virtual == marker) return Payload { mg->mg_ptr, mg->mg_obj };
27 13 for (MAGIC* mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) if (mg->mg_virtual == marker) return Payload { mg->mg_ptr, mg->mg_obj };
170 0 0 inline bool is_undef() const { return (SvTYPE(sv) <= SVt_PVMG && !SvOK(sv)); }
0 0 inline bool is_undef() const { return (SvTYPE(sv) <= SVt_PVMG && !SvOK(sv)); }
0 0 inline bool is_undef() const { return (SvTYPE(sv) <= SVt_PVMG && !SvOK(sv)); }
0 0 inline bool is_undef() const { return (SvTYPE(sv) <= SVt_PVMG && !SvOK(sv)); }
171 10 36 inline bool is_scalar_unsafe() const { return (SvTYPE(sv) <= SVt_PVMG || SvTYPE(sv) == SVt_PVGV); }
0 10 inline bool is_scalar_unsafe() const { return (SvTYPE(sv) <= SVt_PVMG || SvTYPE(sv) == SVt_PVGV); }