Branch Coverage

lib/Doubly/Linked.xs
Criterion Covered Total %
branch 76 114 66.6


line true false branch
16 1020 774 if (SvOK(*hv_fetch(hash, "data", 4, 0))) {
20 0 774 if (SvOK(*hv_fetch(hash, "prev", 4, 0))) {
24 0 774 if (SvOK(*hv_fetch(hash, "next", 4, 0))) {
41 335 572 if (SvTYPE(pkg) != SVt_PV) {
42 335 0 char * name = HvNAME(SvSTASH(SvRV(pkg)));
335 0 char * name = HvNAME(SvSTASH(SvRV(pkg)));
0 335 char * name = HvNAME(SvSTASH(SvRV(pkg)));
0 0 char * name = HvNAME(SvSTASH(SvRV(pkg)));
335 0 char * name = HvNAME(SvSTASH(SvRV(pkg)));
0 335 char * name = HvNAME(SvSTASH(SvRV(pkg)));
56 218 680 while (_defined(hash, "prev", 4)) {
69 0 4 if (_defined(hash, "prev", 4)) {
79 7 122 while (_defined(hash, "next", 4)) {
91 0 2 if (_defined(hash, "next", 4)) {
102 0 0 int len = _defined(hash, "next", 4) ? 1 : _defined(hash, "data", 4) ? 1 : 0;;
0 0 int len = _defined(hash, "next", 4) ? 1 : _defined(hash, "data", 4) ? 1 : 0;;
104 0 0 while (_defined(hash, "next", 4)) {
121 0 3 PUSHMARK(SP);
122 0 3 XPUSHs(data);
125 2 1 if (SvTRUEx(*PL_stack_sp)) {
130 1 0 while (_defined(hash, "next", 4)) {
135 0 1 PUSHMARK(SP);
136 0 1 XPUSHs(data);
139 1 0 if (SvTRUEx(*PL_stack_sp)) {
150 1 4 if (_is_undef(self)) {
163 0 4 if (SvOK(prev) && SvROK(prev)) {
0 0 if (SvOK(prev) && SvROK(prev)) {
176 1 113 if (_is_undef(self)) {
189 0 113 if (SvOK(next) && SvROK(next)) {
0 0 if (SvOK(next) && SvROK(next)) {
202 1 2 if (_is_undef(self)) {
208 0 2 if (!SvOK(self)) {
217 1 102 if (_is_undef(self)) {
225 203 102 for (i = 0; i < pos; i++) {
226 201 2 if (_defined(hash, "next", 4)) {
237 12 102 if (_is_undef(self)) {
255 454 116 if (_is_undef(self)) {
274 2 119 if (_is_undef(self)) {
284 113 6 if (SvOK(prev) || SvOK(next)) {
6 107 if (SvOK(prev) || SvOK(next)) {
285 6 6 if (SvOK(prev)) {
287 1 5 if (SvROK(next)) {
296 6 0 } else if (SvOK(next)) {
310 1 106 if (_is_undef(self)) {
322 100 3 if (_is_undef(self)) {
334 1 3 if (_is_undef(self)) {
342 3 3 for (i = 0; i < pos; i++) {
343 3 0 if (_defined(hash, "next", 4)) {
355 200 350 if (_is_undef(self)) {
365 300 350 while (_defined(hash, "next", 4)) {
373 650 350 for (i = 0; i <= av_len(nodes); i++) {
375 650 0 if (node_ptr && SvROK(*node_ptr)) {
650 0 if (node_ptr && SvROK(*node_ptr)) {
394 2 570 RETVAL = _new(ST(0), items > 1 ? newSVsv(ST(1)) : &PL_sv_undef);
411 4 49 if (items > 1) {
476 0 0 if (items > 1) {
478 0 0 for (i = 1; i < items; i++) {