Branch Coverage

lib/Devel/MAT.xs
Criterion Covered Total %
branch 86 168 51.1


line true false branch
144 7 265723 if(!strings)
150 56448 209282 if(!SvIOK(count))
154 0 265730 sv_setuv(count, SvUV(count) + 1);
162 264627 1103 if(!ent)
167 0 264627 if(SvUV(count) > 1) {
208186 56441 if(SvUV(count) > 1) {
168 0 208186 sv_setuv(count, SvUV(count) - 1);
269 1177807 0 if(sv)
310 53848 0 if(SvPOK(file))
311 53848 0 gv->file = save_string(SvPV_nolen(file), 0);
317 53848 0 if(SvPOK(name))
318 53848 0 gv->name = savepv(SvPV_nolen(name));
329 53848 0 if(gv->file)
331 53848 0 if(gv->name)
352 510492 0 if(gv)
377 27 0 if(gv)
406 5428 371850 if(flags & 0x04)
407 5309 119 if(SvNOK(nv))
408 5309 0 sv->nv = SvNV(nv);
412 169068 208210 if(flags & 0x08) {
415 169068 0 if(SvLEN(pv) && !SvOOK(pv)) {
169068 0 if(SvLEN(pv) && !SvOOK(pv)) {
425 0 0 sv->pv = savepvn(SvPV_nolen(pv), SvCUR(pv));
448 2 0 if(sv)
460 571408 0 if(sv && sv->flags & 0x01 && !(sv->flags & 0x02))
71797 499611 if(sv && sv->flags & 0x01 && !(sv->flags & 0x02))
472 513224 0 if(sv && sv->flags & 0x01 && sv->flags & 0x02)
95 513129 if(sv && sv->flags & 0x01 && sv->flags & 0x02)
484 513147 0 if(sv && sv->flags & 0x04)
8045 505102 if(sv && sv->flags & 0x04)
496 561888 0 if(sv && sv->flags & 0x08)
289953 271935 if(sv && sv->flags & 0x08)
498 561888 0 if(sv && sv->flags & 0x10)
425 561463 if(sv && sv->flags & 0x10)
510 5 0 if(sv && sv->flags & 0x08)
5 0 if(sv && sv->flags & 0x08)
522 107811 0 RETVAL = sv ? sv->ourstash_at : 0;
553 26597 0 if(rv)
568 15024 0 RETVAL = rv ? rv->is_weak : 0;
589 0 56927 n = av_count(elems_at);
592 0 56927 Newx(av->elems_at, n, long);
593 342424 56927 for(i = 0; i < n; i++)
594 0 342424 av->elems_at[i] = SvUV(AvARRAY(elems_at)[i]);
616 2229 0 if(is_backrefs) {
629 0 0 if(av && i < av->n_elems)
0 0 if(av && i < av->n_elems)
649 22465 0 RETVAL = av ? av->flags & 0x01 : 0;
660 1 0 RETVAL = av ? av->is_backrefs : 0;
674 51484 0 if(av)
690 9837165 0 if(av && i < av->n_elems)
9837165 0 if(av && i < av->n_elems)
714 0 10025 Newx(hv->values_at, n, struct pmat_hval);
715 168482 10025 for(i = 0; ent = hv_iternext(values_at); i++) {
721 0 168482 hv->values_at[i].value = SvUV(hv_iterval(values_at, ent));
734 168482 10025 for(i = 0; i < hv->n_values; i++)
751 26858 0 if(hv)
771 8830 0 EXTEND(SP, hv->n_values);
1 8829 EXTEND(SP, hv->n_values);
772 2304857 8830 for(i = 0; i < hv->n_values; i++)
798 723639155 0 for(i = 0; i < hv->n_values; i++) {
799 654731886 68907269 if(hv->values_at[i].klen != klen)
801 68907269 0 if(memcmp(hv->values_at[i].key, SvPV_nolen(key), klen) != 0)
66606259 2301010 if(memcmp(hv->values_at[i].key, SvPV_nolen(key), klen) != 0)
841 43400 0 if(SvPOK(file))
842 43400 0 cv->file = save_string(SvPV_nolen(file), 0);
846 0 43400 if(SvPOK(name))
847 0 0 cv->name = save_string(SvPV_nolen(name), 0);
858 43400 0 if(cv->file)
893 134681 0 RETVAL = cv ? cv->flags & ix : 0;
914 275690 0 if(cv)
939 23 0 if(cv)
959 0 0 n = av_count(fields_at);
962 0 0 Newx(obj->fields_at, n, long);
963 0 0 for(i = 0; i < n; i++)
964 0 0 obj->fields_at[i] = SvUV(AvARRAY(fields_at)[i]);
984 0 0 if(obj)
997 0 0 if(obj && i < obj->n_fields)
0 0 if(obj && i < obj->n_fields)
1033 0 0 Newx(st->fields, n, struct pmat_sv_struct_field);
1034 0 0 for(i = 0; i < n; i++) {
1035 0 0 int type = SvIV(ST(1 + 2*i));
1038 0 0 switch(type) {
1044 0 0 st->fields[i].val = SvUV(ST(2 + 2*i));
1070 0 0 if(i < st->n_fields)