Branch Coverage

Shared.xs
Criterion Covered Total %
branch 69 110 62.7


line true false branch
33 5 21 const char *p = SvOK(path) ? SvPV_nolen(path) : NULL;
35 5 21 if (!h) croak("Data::RadixTree::Shared->new: %s", errbuf);
49 2 1 const char *nm = SvOK(name) ? SvPV_nolen(name) : NULL; /* undef -> default label */
51 1 2 if (!h) croak("Data::RadixTree::Shared->new_memfd: %s", errbuf);
64 1 1 if (!h) croak("Data::RadixTree::Shared->new_from_fd: %s", errbuf);
73 26 0 if (sv_isobject(self) && sv_derived_from(self, "Data::RadixTree::Shared")) {
26 0 if (sv_isobject(self) && sv_derived_from(self, "Data::RadixTree::Shared")) {
75 24 2 if (h) { sv_setiv(SvRV(self), 0); rdx_destroy(h); } /* null first: activates EXTRACT's use-after-destroy croak + makes a double DESTROY a no-op */
84 1093 0 EXTRACT(self);
0 1093 EXTRACT(self);
0 1093 EXTRACT(self);
93 3 1088 if (!rdx_insert_has_room(h, (uint32_t)klen)) {
101 1054 34 RETVAL = (IV)isnew;
110 1604 0 EXTRACT(self);
0 1604 EXTRACT(self);
1 1603 EXTRACT(self);
120 1589 13 RETVAL = found ? newSVuv((UV)val) : &PL_sv_undef;
129 1592 0 EXTRACT(self);
0 1592 EXTRACT(self);
0 1592 EXTRACT(self);
145 44 0 EXTRACT(self);
0 44 EXTRACT(self);
0 44 EXTRACT(self);
155 27 16 RETVAL = found ? newSVuv((UV)val) : &PL_sv_undef;
164 525 0 EXTRACT(self);
0 525 EXTRACT(self);
0 525 EXTRACT(self);
174 518 6 RETVAL = (IV)removed;
182 1 0 EXTRACT(self);
0 1 EXTRACT(self);
0 1 EXTRACT(self);
193 26 0 EXTRACT(self);
0 26 EXTRACT(self);
0 26 EXTRACT(self);
205 2 0 EXTRACT(self);
0 2 EXTRACT(self);
0 2 EXTRACT(self);
238 3 0 EXTRACT(self);
0 3 EXTRACT(self);
0 3 EXTRACT(self);
240 1 2 RETVAL = h->path ? newSVpv(h->path, 0) : &PL_sv_undef;
248 3 0 EXTRACT(self);
0 3 EXTRACT(self);
0 3 EXTRACT(self);
250 0 3 RETVAL = h->backing_fd;
258 2 0 EXTRACT(self);
0 2 EXTRACT(self);
0 2 EXTRACT(self);
260 0 2 if (rdx_msync(h) != 0) croak("sync: %s", strerror(errno));
266 1 1 if (sv_isobject(self) && sv_derived_from(self, "Data::RadixTree::Shared")) {
1 0 if (sv_isobject(self) && sv_derived_from(self, "Data::RadixTree::Shared")) {
268 1 0 if (h && h->path) unlink(h->path);
1 0 if (h && h->path) unlink(h->path);
269 1 0 } else if (items >= 2 && SvOK(ST(1))) {
1 0 } else if (items >= 2 && SvOK(ST(1))) {