line |
true |
false |
branch |
27
|
8 |
165 |
PANDA_GLOBAL_MEMBER_PTR(TypemapMarker, svt_clear_t, get, &func); |
61
|
117 |
3 |
return mg ? mg->mg_ptr : NULL; |
95
|
191 |
3 |
for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) if (mg->mg_virtual && mg->mg_virtual->svt_clear == marker) return mg; |
|
191 |
0 |
for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) if (mg->mg_virtual && mg->mg_virtual->svt_clear == marker) return mg; |
|
117 |
74 |
for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) if (mg->mg_virtual && mg->mg_virtual->svt_clear == marker) return mg; |
302
|
26 |
96 |
if (!SvOBJECT(arg)) { |
303
|
24 |
2 |
if (SvROK(arg)) { |
305
|
0 |
24 |
if (!SvOBJECT(arg)) throw "arg is a reference to non-object"; |
307
|
2 |
0 |
else if (!SvOK(arg)) return TYPE(); |
|
2 |
0 |
else if (!SvOK(arg)) return TYPE(); |
|
2 |
0 |
else if (!SvOK(arg)) return TYPE(); |
311
|
120 |
0 |
auto ptr = IStorage::get(arg); |
312
|
117 |
3 |
if (ptr) { |
314
|
117 |
0 |
TYPE ret = cast(downgraded); |
315
|
117 |
0 |
if (ret) { |
316
|
0 |
117 |
if (!std::is_const::value && SvREADONLY(arg)) throw "cannot modify read-only object"; |
405
|
165 |
0 |
template static inline TO cast (FROM v) { return _cast(v, CastType()); } |