line |
true |
false |
branch |
15
|
0 |
89 |
PUSHMARK(SP); |
16
|
0 |
89 |
XPUSHs(closure); |
17
|
0 |
89 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(closure_data)))); |
18
|
0 |
89 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(closure_data->type)))); |
21
|
89 |
0 |
FREETMPS; |
34
|
0 |
90 |
PUSHMARK(SP); |
35
|
0 |
90 |
XPUSHs(closure); |
36
|
0 |
90 |
XPUSHs(sv_2mortal(newSViv(PTR2IV(type)))); |
41
|
0 |
90 |
if (count != 1) |
44
|
90 |
0 |
ret = INT2PTR(void*, POPi); |
47
|
90 |
0 |
FREETMPS; |
65
|
98 |
5 |
if(!(flags & G_NOARGS)) |
71
|
0 |
103 |
PUSHMARK(SP); |
73
|
98 |
5 |
if(!(flags & G_NOARGS)) |
75
|
107 |
98 |
for(i=0; i< ffi_cif->nargs; i++) |
84
|
0 |
6 |
XPUSHs(sv); |
89
|
0 |
6 |
XPUSHs(sv); |
94
|
0 |
10 |
XPUSHs(sv); |
99
|
0 |
7 |
XPUSHs(sv); |
104
|
0 |
6 |
XPUSHs(sv); |
109
|
0 |
6 |
XPUSHs(sv); |
114
|
0 |
6 |
XPUSHs(sv); |
119
|
0 |
7 |
XPUSHs(sv); |
124
|
0 |
6 |
XPUSHs(sv); |
129
|
0 |
7 |
XPUSHs(sv); |
133
|
3 |
4 |
if( *((void**)arguments[i]) != NULL) |
135
|
0 |
7 |
XPUSHs(sv); |
139
|
24 |
3 |
if( *((char**)arguments[i]) != NULL) |
143
|
0 |
27 |
XPUSHs(sv); |
147
|
4 |
1 |
if( *((char**)arguments[i]) != NULL) |
150
|
1 |
3 |
if(extra->argument_types[i]->extra[0].record.class != NULL) |
162
|
0 |
5 |
XPUSHs(sv); |
170
|
0 |
1 |
XPUSHs(ref); |
182
|
103 |
0 |
if(SvTRUE(ERRSV)) |
|
103 |
0 |
if(SvTRUE(ERRSV)) |
|
103 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
103 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
103 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
103 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
103 |
0 |
if(SvTRUE(ERRSV)) |
|
103 |
0 |
if(SvTRUE(ERRSV)) |
|
103 |
0 |
if(SvTRUE(ERRSV)) |
|
103 |
0 |
if(SvTRUE(ERRSV)) |
|
103 |
0 |
if(SvTRUE(ERRSV)) |
|
102 |
1 |
if(SvTRUE(ERRSV)) |
|
102 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
102 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
0 |
0 |
if(SvTRUE(ERRSV)) |
|
1 |
102 |
if(SvTRUE(ERRSV)) |
185
|
1 |
0 |
warn_sv(ERRSV); |
191
|
73 |
30 |
if(!(flags & G_DISCARD)) |
195
|
0 |
73 |
if(count != 1) |
210
|
0 |
6 |
*((uint8_t*)result) = SvUV(sv); |
219
|
3 |
3 |
*((int8_t*)result) = SvIV(sv); |
228
|
0 |
6 |
*((uint16_t*)result) = SvUV(sv); |
237
|
3 |
3 |
*((int16_t*)result) = SvIV(sv); |
244
|
0 |
6 |
*((uint32_t*)result) = SvUV(sv); |
251
|
6 |
3 |
*((int32_t*)result) = SvIV(sv); |
255
|
0 |
6 |
*((uint64_t*)result) = SvU64(sv); |
258
|
3 |
3 |
*((int64_t*)result) = SvI64(sv); |
261
|
3 |
3 |
*((float*)result) = SvNV(sv); |
264
|
3 |
3 |
*((double*)result) = SvNV(sv); |
267
|
4 |
3 |
*((void**)result) = SvOK(sv) ? INT2PTR(void*, SvIV(sv)) : NULL; |
|
4 |
0 |
*((void**)result) = SvOK(sv) ? INT2PTR(void*, SvIV(sv)) : NULL; |
|
0 |
4 |
*((void**)result) = SvOK(sv) ? INT2PTR(void*, SvIV(sv)) : NULL; |
|
3 |
0 |
*((void**)result) = SvOK(sv) ? INT2PTR(void*, SvIV(sv)) : NULL; |
270
|
2 |
1 |
if(sv_isobject(sv) && sv_derived_from(sv, extra->return_type->extra[0].record.class)) |
|
2 |
0 |
if(sv_isobject(sv) && sv_derived_from(sv, extra->return_type->extra[0].record.class)) |
274
|
2 |
0 |
ptr = SvPV(SvRV(sv), len); |
275
|
0 |
2 |
if(len > extra->return_type->extra[0].record.size) |
277
|
1 |
1 |
else if(len < extra->return_type->extra[0].record.size) |
296
|
98 |
5 |
if(!(flags & G_NOARGS)) |
298
|
98 |
0 |
FREETMPS; |