Branch Coverage

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


line true false branch
144 7 251540 if(!strings)
150 54498 197049 if(!SvIOK(count))
154 0 251547 sv_setuv(count, SvUV(count) + 1);
162 250535 1012 if(!ent)
167 0 250535 if(SvUV(count) > 1) {
196044 54491 if(SvUV(count) > 1) {
168 0 196044 sv_setuv(count, SvUV(count) - 1);
269 1109577 0 if(sv)
310 50390 0 if(SvPOK(file))
311 50390 0 gv->file = save_string(SvPV_nolen(file), 0);
317 50390 0 if(SvPOK(name))
318 50390 0 gv->name = savepv(SvPV_nolen(name));
329 50390 0 if(gv->file)
331 50390 0 if(gv->name)
352 479956 0 if(gv)
377 27 0 if(gv)
406 5414 352072 if(flags & 0x04)
407 5295 119 if(SvNOK(nv))
408 5295 0 sv->nv = SvNV(nv);
412 157962 199524 if(flags & 0x08) {
415 157962 0 if(SvLEN(pv) && !SvOOK(pv)) {
157962 0 if(SvLEN(pv) && !SvOOK(pv)) {
425 0 0 sv->pv = savepvn(SvPV_nolen(pv), SvCUR(pv));
448 2 0 if(sv)
460 542063 0 if(sv && sv->flags & 0x01 && !(sv->flags & 0x02))
69031 473032 if(sv && sv->flags & 0x01 && !(sv->flags & 0x02))
472 486118 0 if(sv && sv->flags & 0x01 && sv->flags & 0x02)
95 486023 if(sv && sv->flags & 0x01 && sv->flags & 0x02)
484 486041 0 if(sv && sv->flags & 0x04)
8026 478015 if(sv && sv->flags & 0x04)
496 531359 0 if(sv && sv->flags & 0x08)
270962 260397 if(sv && sv->flags & 0x08)
498 531359 0 if(sv && sv->flags & 0x10)
399 530960 if(sv && sv->flags & 0x10)
510 5 0 if(sv && sv->flags & 0x08)
5 0 if(sv && sv->flags & 0x08)
522 102146 0 RETVAL = sv ? sv->ourstash_at : 0;
553 25521 0 if(rv)
568 14490 0 RETVAL = rv ? rv->is_weak : 0;
589 0 51096 n = av_count(elems_at);
592 0 51096 Newx(av->elems_at, n, long);
593 322124 51096 for(i = 0; i < n; i++)
594 0 322124 av->elems_at[i] = SvUV(AvARRAY(elems_at)[i]);
616 2124 0 if(is_backrefs) {
629 0 0 if(av && i < av->n_elems)
0 0 if(av && i < av->n_elems)
649 20579 0 RETVAL = av ? av->flags & 0x01 : 0;
660 1 0 RETVAL = av ? av->is_backrefs : 0;
674 47096 0 if(av)
690 9778783 0 if(av && i < av->n_elems)
9778783 0 if(av && i < av->n_elems)
714 0 9528 Newx(hv->values_at, n, struct pmat_hval);
715 160725 9528 for(i = 0; ent = hv_iternext(values_at); i++) {
721 0 160725 hv->values_at[i].value = SvUV(hv_iterval(values_at, ent));
734 160725 9528 for(i = 0; i < hv->n_values; i++)
751 26029 0 if(hv)
771 8651 0 EXTEND(SP, hv->n_values);
1 8650 EXTEND(SP, hv->n_values);
772 2277893 8651 for(i = 0; i < hv->n_values; i++)
798 709697037 0 for(i = 0; i < hv->n_values; i++) {
799 641036927 68660110 if(hv->values_at[i].klen != klen)
801 68660110 0 if(memcmp(hv->values_at[i].key, SvPV_nolen(key), klen) != 0)
66385856 2274254 if(memcmp(hv->values_at[i].key, SvPV_nolen(key), klen) != 0)
841 40432 0 if(SvPOK(file))
842 40432 0 cv->file = save_string(SvPV_nolen(file), 0);
846 0 40432 if(SvPOK(name))
847 0 0 cv->name = save_string(SvPV_nolen(name), 0);
858 40432 0 if(cv->file)
893 125042 0 RETVAL = cv ? cv->flags & ix : 0;
914 257867 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)