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); } |