Branch Coverage

Clone.xs
Criterion Covered Total %
branch 51 74 68.9


line true false branch
41 23 0 int recur = depth ? depth - 1 : 0;
48 32 23 while ((next = hv_iternext (self)))
69 14 0 int recur = depth ? depth - 1 : 0;
83 27 14 for (i = 0; i <= arrlen; i++)
86 27 0 if (svp)
104 0 0 if (!SvROK (ref))
107 0 0 if (sv_isobject (ref))
127 0 161 if (!ref)
143 6 155 if (depth == 0)
146 155 0 if (visible && (seen = CLONE_FETCH(ref)))
13 142 if (visible && (seen = CLONE_FETCH(ref)))
179 11 3 if ( SvIsCOW(ref) && !SvOOK(ref) && SvLEN(ref) > 0 ) {
11 0 if ( SvIsCOW(ref) && !SvOOK(ref) && SvLEN(ref) > 0 ) {
11 0 if ( SvIsCOW(ref) && !SvOOK(ref) && SvLEN(ref) > 0 ) {
181 11 0 if ( CowREFCNT(ref) < (SV_COW_REFCNT_MAX - 1) ) {
198 0 11 if (SvUTF8(ref))
252 142 0 if ( visible && ref != clone )
141 1 if ( visible && ref != clone )
253 0 141 CLONE_STORE(ref,clone);
273 6 136 if (SvMAGICAL(ref) )
278 6 6 for (mg = SvMAGIC(ref); mg; mg = mg->mg_moremagic)
285 4 2 if ( mg->mg_obj != NULL )
312 4 2 if (mg->mg_len >= 0) { /* copy the pv */
313 0 4 if (mg_ptr) {
317 0 2 } else if (mg->mg_len == HEf_SVKEY) {
322 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 */
323 1 1 if (mg->mg_ptr) {
329 0 0 } else if ( mg->mg_ptr != NULL) {
343 0 6 if ( (mg = mg_find(clone, 'r')) )
347 139 3 if ( magic_ref )
351 23 116 else if ( SvTYPE(ref) == SVt_PVHV )
353 14 102 else if ( SvTYPE(ref) == SVt_PVAV )
356 64 38 else if (SvROK (ref))
361 20 44 if (sv_isobject (ref))
365 3 61 if (SvWEAKREF(ref)) {
390 0 34 EXTEND(SP,1);