Branch Coverage

xs/TypeParser.xs
Criterion Covered Total %
branch 30 38 78.9


line true false branch
55 7 65 type->type_code |= is_by_value ? FFI_PL_TYPE_RECORD_VALUE : FFI_PL_TYPE_RECORD;
57 28 44 if(record_class != NULL)
102 11 60 if(rw)
160 206 3 if( (basis->type_code & FFI_PL_BASE_MASK) == (FFI_PL_TYPE_RECORD & FFI_PL_BASE_MASK)
161 2 204 || (basis->type_code & FFI_PL_BASE_MASK) == (FFI_PL_TYPE_RECORD_VALUE & FFI_PL_BASE_MASK))
165 4 1 if(basis->extra[0].record.class)
174 107 102 custom->perl_to_native = SvOK(perl_to_native) ? SvREFCNT_inc_simple_NN(perl_to_native) : NULL;
175 62 147 custom->perl_to_native_post = SvOK(perl_to_native_post) ? SvREFCNT_inc_simple_NN(perl_to_native_post) : NULL;
176 127 82 custom->native_to_perl = SvOK(native_to_perl) ? SvREFCNT_inc_simple_NN(native_to_perl) : NULL;
237 0 2 if(return_type->extra[0].record.meta == NULL)
239 1 1 if(!return_type->extra[0].record.meta->can_return_from_closure)
255 72 89 for(i=0; i<(items-3); i++)
300 0 1 if(type->extra[0].closure.argument_types[i]->extra[0].record.meta == NULL)
317 0 89 items-3,
322 0 89 if(ffi_status != FFI_OK)
326 0 0 if(ffi_status == FFI_BAD_TYPEDEF)
328 0 0 else if(ffi_status == FFI_BAD_ABI)
334 33 56 if( items-3 == 0 )
339 47 42 if(type->extra[0].closure.return_type->type_code == FFI_PL_TYPE_VOID)