| line |
true |
false |
branch |
|
18
|
111 |
0 |
Object (T* sv, bool policy = INCREMENT) : Sv(sv, policy) { _validate(); } |
|
22
|
33 |
0 |
Object (const Sv& oth) : Sv(oth) { _validate(); } |
|
23
|
40 |
0 |
Object (Sv&& oth) : Sv(std::move(oth)) { _validate(); } |
|
88
|
0 |
184 |
if (!sv) return; |
|
89
|
3 |
181 |
if (SvOBJECT(sv)) return; |
|
90
|
180 |
1 |
if (SvROK(sv)) { // reference to object? |
|
92
|
180 |
0 |
if (SvOBJECT(val)) { |
|
93
|
180 |
0 |
_ref = sv; |
|
94
|
180 |
0 |
Sv::operator=(val); |
|
98
|
1 |
0 |
if (is_undef()) return reset(); |
|
100
|
0 |
0 |
throw std::invalid_argument("wrong SV* type for Object"); |
|
103
|
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); } |