Branch Coverage

Object.xs
Criterion Covered Total %
branch 245 314 78.0


line true false branch
94 201 65 if (!pb->sv)
105 70 55 for (; iter != last; ++iter)
107 70 0 if (*iter)
109 10 60 if (*iter == sv)
116 55 0 if (!hole)
135 162 465 if (!s->flat) {
140 19 608 if (!SvOK(sv))
147 589 19 if (!hv_exists(s->flat, key, len)) {
148 0 589 if (!hv_store(s->flat, key, len, &PL_sv_undef, 0)) {
169 36 0 if (!s->flat || !HvKEYS(s->flat)) {
0 36 if (!s->flat || !HvKEYS(s->flat)) {
0 36 if (!s->flat || !HvKEYS(s->flat)) {
186 36 0 if ( hv_delete(s->flat, key, len, 0) ) {
201 248 6 if (s->flat && HvKEYS(s->flat)) {
0 248 if (s->flat && HvKEYS(s->flat)) {
247 1 if (s->flat && HvKEYS(s->flat)) {
219 0 249 if (!SvROK(rv))
224 81 168 if (!s->buckets)
233 239 10 if (insert_in_bucket(s->bucket + index, el))
237 13 226 if (s->is_weak) {
246 4 245 if (s->elems > s->buckets)
264 48 4 for (i = 0; bucket_iter != bucket_last; ++bucket_iter, ++i)
269 19 29 if (!bucket_iter->sv)
276 52 29 for (; el_iter != el_last; ++el_iter)
282 35 17 if (index == i)
296 1 28 if (!new_bucket_size)
303 14 14 else if (new_bucket_size < bucket_iter->n)
320 696 4286 for (; bucket_iter != bucket_last; ++bucket_iter)
324 496 200 if (!bucket_iter->sv)
330 239 200 for (; el_iter != el_last; ++el_iter)
332 212 27 if (*el_iter)
339 6 206 if (s->is_weak) {
365 13 18 if (SvMAGICAL(sv))
379 7 0 if (mg) {
387 7 7 while (i >= 0) {
388 7 0 if (svp[i] && SvIOK(svp[i]) && SvIV(svp[i])) {
7 0 if (svp[i] && SvIOK(svp[i]) && SvIV(svp[i])) {
1 6 if (svp[i] && SvIOK(svp[i]) && SvIV(svp[i])) {
390 1 0 if (s == o) {
403 7 0 if (!c) {
417 48 19 for (; bucket_iter != bucket_last; ++bucket_iter)
421 41 7 if (!bucket_iter->sv)
427 7 7 for (; el_iter != el_last; ++el_iter)
428 6 1 if (*el_iter) {
429 1 5 if (strong) {
439 5 0 if ( SvREFCNT(*el_iter) > 1 )
461 18 18 while (i >= 0) {
463 18 0 if (svp[i] && SvIOK(svp[i]) && SvIV(svp[i])) {
18 0 if (svp[i] && SvIOK(svp[i]) && SvIV(svp[i])) {
11 7 if (svp[i] && SvIOK(svp[i]) && SvIV(svp[i])) {
466 0 11 if (!s->is_weak)
471 0 11 if (iset_remove_one(s, sv, 1) != 1) {
494 0 18 if (mg) {
517 0 18 while (i >= 0) {
518 0 0 if (svp[i] && SvIV(svp[i])) {
0 0 if (svp[i] && SvIV(svp[i])) {
520 0 0 if (s == o)
523 0 0 if ( svp[i] ) SvREFCNT_dec(svp[i]);
530 18 0 if (free == -1) {
554 59 11 if (!spell_in_progress && !SvOK(el))
2 57 if (!spell_in_progress && !SvOK(el))
557 57 11 if (SvOK(el) && !SvROK(el)) {
37 20 if (SvOK(el) && !SvROK(el)) {
559 36 1 if (s->flat && HvKEYS(s->flat)) {
0 36 if (s->flat && HvKEYS(s->flat)) {
36 0 if (s->flat && HvKEYS(s->flat)) {
561 36 0 if (iset_remove_scalar(s, el))
567 20 11 referant = (spell_in_progress ? el : SvRV(el));
572 1 30 if (s->buckets == 0)
575 2 28 if (!bucket->sv)
583 29 1 for (; el_iter != el_last; ++el_iter) {
584 27 2 if (*el_iter == referant) {
585 11 16 if (s->is_weak) {
587 0 11 if (!spell_in_progress) {
646 745 2269 for (item = 1; item < items; ++item) {
649 195 550 ISET_INSERT(s, el);
667 118 64 for (item = 1; item < items; ++item)
670 0 118 if ((SV*)s == el) {
674 47 71 if ISET_INSERT(s, el)
99 19 if ISET_INSERT(s, el)
691 59 37 for (item = 1; item < items; ++item)
705 0 15 if (s->elems)
707 13 2 if (s->flat) {
708 0 13 if (HvKEYS(s->flat)) {
11 2 if (HvKEYS(s->flat)) {
712 0 4 RETVAL = 1;
722 59 111 RETVAL = s->elems + (s->flat ? HvKEYS(s->flat) : 0);
0 59 RETVAL = s->elems + (s->flat ? HvKEYS(s->flat) : 0);
90 80 RETVAL = s->elems + (s->flat ? HvKEYS(s->flat) : 0);
731 0 0 RETVAL = SvREFCNT(self);
741 0 0 if (SvROK(self)) {
760 397 188 for (item = 1; item < items; ++item)
765 2 395 if (!SvOK(el))
769 254 141 if (!SvROK(el)) {
771 133 121 if (!iset_includes_scalar(s, el))
778 41 100 if (!s->buckets)
788 10 90 if (!bucket->sv)
794 94 10 for (; el_iter != el_last; ++el_iter)
795 80 14 if (*el_iter == rv)
816 300 2122 EXTEND(sp, s->elems + (s->flat ? HvKEYS(s->flat) : 0) );
0 300 EXTEND(sp, s->elems + (s->flat ? HvKEYS(s->flat) : 0) );
300 2122 EXTEND(sp, s->elems + (s->flat ? HvKEYS(s->flat) : 0) );
0 300 EXTEND(sp, s->elems + (s->flat ? HvKEYS(s->flat) : 0) );
0 2422 EXTEND(sp, s->elems + (s->flat ? HvKEYS(s->flat) : 0) );
0 0 EXTEND(sp, s->elems + (s->flat ? HvKEYS(s->flat) : 0) );
0 0 EXTEND(sp, s->elems + (s->flat ? HvKEYS(s->flat) : 0) );
818 688 2422 for (; bucket_iter != bucket_last; ++bucket_iter)
822 495 193 if (!bucket_iter->sv)
828 217 193 for (; el_iter != el_last; ++el_iter)
830 212 5 if (*el_iter) {
832 204 8 if (SvOBJECT(*el_iter)) {
840 300 2122 if (s->flat) {
843 998 300 while (i++ < num) {
846 998 0 PUSHs(HeSVKEY_force(he));
0 998 PUSHs(HeSVKEY_force(he));
858 9 3 if (s->flat) {
869 4274 3 if ( s ) {
873 162 4112 if (s->flat) {
887 2002 3 RETVAL = !!s->is_weak;
898 1 18 if (s->is_weak)
914 0 1 if (!s->is_weak)
932 15 7 if ( !SvIOKp(sv) )
935 1 6 RETVAL = 1;
945 5 4 if ( !SvPOKp(sv) )
948 1 3 RETVAL = 1;
958 5 9 if ( !SvNOKp(sv) )
961 0 9 RETVAL = 1;
972 0 6 if (! SvROK(sv)) {
977 3 3 if (! (mg = _detect_magic(SvRV(sv))) )
997 3 3 if (s->flat) {
1011 0 12 if (SvMAGICAL(sv))
1013 2 10 if(!sv_isobject(sv)) {
1027 0 6 if (SvMAGICAL(sv))
1029 0 6 if(!SvROK(sv)) {
1043 5 0 if(SvROK(sv)) {
1068 1 25 if (SvMAGICAL(sv)) {
1073 3 22 if (SvAMAGIC(sv)) {
3 0 if (SvAMAGIC(sv)) {
3 0 if (SvAMAGIC(sv)) {
1079 16 6 if (SvNIOKp(sv)) {
1082 7 9 if (SvPOKp(sv)) {
1096 5 2 if (SvIOKp(sv)) {
1098 2 0 } else if (SvNOKp(sv)) {
1106 3 4 if (sv_cmp(MH, sv) != 0) {
1111 9 4 if (SvNOKp(sv)) {
1114 1 8 if (SvIOKp(sv)) {
1119 8 1 if (dutch - innit < (0.000000001)) {
1124 4 0 } else if (SvIOKp(sv)) {
1139 7 7 if ( !SvAMAGIC(sv) )
5 2 if ( !SvAMAGIC(sv) )
0 5 if ( !SvAMAGIC(sv) )
1141 4 1 RETVAL = 1;
1151 0 0 if ( !SvOBJECT(sv) )
1153 0 0 RETVAL = 1;
1175 0 2005 if (!SvROK(obj)) {
1190 13 2005 for (item = 3; item < items; ++item)
1194 7 6 ISET_INSERT(s, el);