Branch Coverage

/usr/local/lib/perl5/site_perl/5.26.1/x86_64-linux/XS/Framework.x/i/xs/Object.h
Criterion Covered Total %
branch 16 28 57.1


line true false branch
18 111 0 Object (T* sv, bool policy = INCREMENT) : Sv(sv, policy) { _validate(); }
22 0 0 Object (const Sv& oth) : Sv(oth) { _validate(); }
23 40 0 Object (Sv&& oth) : Sv(std::move(oth)) { _validate(); }
89 0 151 if (!sv) return;
90 3 148 if (SvOBJECT(sv)) return;
91 147 1 if (SvROK(sv)) { // reference to object?
93 147 0 if (SvOBJECT(val)) {
94 147 0 _ref = sv;
95 147 0 Sv::operator=(val);
99 1 0 if (is_undef()) return reset();
101 0 0 throw std::invalid_argument("SV is not an Object (blessed value or reference to blessed value)");
104 36 2 void _check_ref () const { if (!_ref || SvRV(_ref) != sv) _ref = Ref::create(sv); }
0 36 void _check_ref () const { if (!_ref || SvRV(_ref) != sv) _ref = Ref::create(sv); }
2 36 void _check_ref () const { if (!_ref || SvRV(_ref) != sv) _ref = Ref::create(sv); }