Branch Coverage

XS.xs
Criterion Covered Total %
branch 93 168 55.3


line true false branch
17 5 0 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV)
0 5 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV)
19 4 1 if (!SvROK(cb) || SvTYPE(SvRV(cb)) != SVt_PVCV)
0 4 if (!SvROK(cb) || SvTYPE(SvRV(cb)) != SVt_PVCV)
23 0 4 SSize_t max = AvFILL(av);
25 4 0 if (max >= 0) {
37 13 4 for (SSize_t i = 0, num = 1; i <= max; i++, num++) {
39 0 13 if (!e) continue;
41 13 0 DEFSV = e; /* $_ alias */
44 0 13 PUSHMARK(SP);
45 0 13 XPUSHs(e);
46 0 13 XPUSHs(idx_sv);
53 4 0 FREETMPS;
67 2 0 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV)
0 2 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV)
69 2 0 if (!SvROK(cb) || SvTYPE(SvRV(cb)) != SVt_PVCV)
0 2 if (!SvROK(cb) || SvTYPE(SvRV(cb)) != SVt_PVCV)
73 0 2 SSize_t max = AvFILL(av);
75 2 0 if (max >= 0) {
86 4 2 for (SSize_t i = 0, num = 1; i <= max; i++, num++) {
88 0 4 if (!e) continue;
92 0 4 PUSHMARK(SP);
93 0 4 XPUSHs(e);
94 0 4 XPUSHs(idx_sv);
101 2 0 FREETMPS;
115 4 0 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV)
0 4 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV)
117 4 0 if (!SvROK(cb) || SvTYPE(SvRV(cb)) != SVt_PVCV)
0 4 if (!SvROK(cb) || SvTYPE(SvRV(cb)) != SVt_PVCV)
121 0 4 SSize_t max = AvFILL(av);
123 4 0 if (max >= 0) {
135 10 4 for (SSize_t idx = 0, num = 1; idx <= max; idx++, num++) {
137 0 10 if (!item) continue;
139 10 0 DEFSV = item; /* alias to element */
142 0 10 PUSHMARK(SP);
143 0 10 XPUSHs(item);
144 0 10 XPUSHs(num_sv);
151 4 0 FREETMPS;
166 5 0 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV)
0 5 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV)
168 5 0 if (!SvROK(cb) || SvTYPE(SvRV(cb)) != SVt_PVCV)
0 5 if (!SvROK(cb) || SvTYPE(SvRV(cb)) != SVt_PVCV)
172 0 5 SSize_t max = AvFILL(av);
178 5 0 if (max >= 0) {
188 14 5 for (SSize_t i = 0; i <= max; i++) {
190 0 14 if (!item) continue;
192 0 14 PUSHMARK(SP);
193 0 14 XPUSHs(item);
199 14 0 if (count > 0) {
201 14 0 if (ret && ret != &PL_sv_undef) {
14 0 if (ret && ret != &PL_sv_undef) {
202 14 0 av_push(out, SvTEMP(ret) ? newSVsv(ret) : SvREFCNT_inc(ret));
204 0 14 if (count > 1) SP -= (count - 1);
208 5 0 FREETMPS;
223 4 0 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV)
0 4 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV)
225 4 0 if (!SvROK(cb) || SvTYPE(SvRV(cb)) != SVt_PVCV)
0 4 if (!SvROK(cb) || SvTYPE(SvRV(cb)) != SVt_PVCV)
229 0 4 SSize_t max = AvFILL(av);
235 4 0 if (max >= 0) {
246 13 4 for (SSize_t idx = 0; idx <= max; idx++) {
248 0 13 if (!item) continue;
250 13 0 DEFSV = item; /* alias to element */
252 0 13 PUSHMARK(SP);
253 0 13 XPUSHs(item);
259 13 0 if (count > 0) {
261 17 13 for (I32 i = 0; i < count; i++) {
268 4 0 FREETMPS;
283 5 0 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV)
0 5 if (!SvROK(self) || SvTYPE(SvRV(self)) != SVt_PVAV)
285 5 0 if (!SvROK(cb) || SvTYPE(SvRV(cb)) != SVt_PVCV)
0 5 if (!SvROK(cb) || SvTYPE(SvRV(cb)) != SVt_PVCV)
289 0 5 SSize_t max = AvFILL(av);
295 5 0 if (max >= 0) {
305 19 5 for (SSize_t idx = 0; idx <= max; idx++) {
307 0 19 if (!item) continue;
309 19 0 DEFSV = item; /* $_ = item */
311 0 19 PUSHMARK(SP);
312 0 19 XPUSHs(item);
318 19 0 SV *decision = count > 0 ? POPs : &PL_sv_undef;
319 0 19 if (count > 1) SP -= (count - 1);
321 19 0 if (decision && SvTRUE(decision)) {
11 8 if (decision && SvTRUE(decision)) {
327 5 0 FREETMPS;