Branch Coverage

Clone.xs
Criterion Covered Total %
branch 53 74 71.6


line true false branch
42 27 0 int recur = depth ? depth - 1 : 0;
49 44 27 while ((next = hv_iternext (self)))
70 16 0 int recur = depth ? depth - 1 : 0;
84 42 16 for (i = 0; i <= arrlen; i++)
87 42 0 if (svp)
105 0 0 if (!SvROK (ref))
108 0 0 if (sv_isobject (ref))
128 0 209 if (!ref)
144 6 203 if (depth == 0)
147 203 0 if (visible && (seen = CLONE_FETCH(ref)))
13 190 if (visible && (seen = CLONE_FETCH(ref)))
180 39 5 if ( SvIsCOW(ref) && !SvOOK(ref) && SvLEN(ref) > 0 ) {
39 0 if ( SvIsCOW(ref) && !SvOOK(ref) && SvLEN(ref) > 0 ) {
29 10 if ( SvIsCOW(ref) && !SvOOK(ref) && SvLEN(ref) > 0 ) {
182 27 2 if ( CowREFCNT(ref) < (SV_COW_REFCNT_MAX - 1) ) {
199 0 27 if (SvUTF8(ref))
253 190 0 if ( visible && ref != clone )
188 2 if ( visible && ref != clone )
254 0 188 CLONE_STORE(ref,clone);
274 6 184 if (SvMAGICAL(ref) )
279 6 6 for (mg = SvMAGIC(ref); mg; mg = mg->mg_moremagic)
286 4 2 if ( mg->mg_obj != NULL )
313 4 2 if (mg->mg_len >= 0) { /* copy the pv */
314 0 4 if (mg_ptr) {
318 0 2 } else if (mg->mg_len == HEf_SVKEY) {
323 2 0 } else if (mg->mg_len == -1 && mg->mg_type == PERL_MAGIC_utf8) { /* copy the cache */
2 0 } else if (mg->mg_len == -1 && mg->mg_type == PERL_MAGIC_utf8) { /* copy the cache */
324 1 1 if (mg->mg_ptr) {
330 0 0 } else if ( mg->mg_ptr != NULL) {
344 0 6 if ( (mg = mg_find(clone, 'r')) )
348 187 3 if ( magic_ref )
352 27 160 else if ( SvTYPE(ref) == SVt_PVHV )
354 16 144 else if ( SvTYPE(ref) == SVt_PVAV )
357 71 73 else if (SvROK (ref))
362 20 51 if (sv_isobject (ref))
366 3 68 if (SvWEAKREF(ref)) {
391 0 48 EXTEND(SP,1);