| 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; |