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 |
61 |
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
|
102 |
107 |
custom->perl_to_native = SvOK(perl_to_native) ? SvREFCNT_inc_simple_NN(perl_to_native) : NULL; |
|
102 |
0 |
custom->perl_to_native = SvOK(perl_to_native) ? SvREFCNT_inc_simple_NN(perl_to_native) : NULL; |
|
0 |
102 |
custom->perl_to_native = SvOK(perl_to_native) ? SvREFCNT_inc_simple_NN(perl_to_native) : NULL; |
175
|
147 |
62 |
custom->perl_to_native_post = SvOK(perl_to_native_post) ? SvREFCNT_inc_simple_NN(perl_to_native_post) : NULL; |
|
147 |
0 |
custom->perl_to_native_post = SvOK(perl_to_native_post) ? SvREFCNT_inc_simple_NN(perl_to_native_post) : NULL; |
|
0 |
147 |
custom->perl_to_native_post = SvOK(perl_to_native_post) ? SvREFCNT_inc_simple_NN(perl_to_native_post) : NULL; |
176
|
82 |
127 |
custom->native_to_perl = SvOK(native_to_perl) ? SvREFCNT_inc_simple_NN(native_to_perl) : NULL; |
|
82 |
0 |
custom->native_to_perl = SvOK(native_to_perl) ? SvREFCNT_inc_simple_NN(native_to_perl) : NULL; |
|
0 |
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) |
248
|
0 |
92 |
Newx(ffi_argument_types, items-3, ffi_type*); |
255
|
72 |
89 |
for(i=0; i<(items-3); i++) |
258
|
72 |
0 |
type->extra[0].closure.argument_types[i] = INT2PTR(ffi_pl_type*, SvIV((SV*)SvRV(arg))); |
300
|
0 |
1 |
if(type->extra[0].closure.argument_types[i]->extra[0].record.meta == NULL) |
314
|
0 |
89 |
ffi_status = ffi_prep_cif( |
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) |