line |
true |
false |
branch |
11
|
35 |
0 |
delete fc; |
21
|
25 |
0 |
Sub sub(cv); |
23
|
0 |
25 |
if (!fc) throw "invalid function->sub subroutine"; |
24
|
23 |
2 |
auto ret = fc->call(&ST(0), items); |
25
|
14 |
9 |
if (!ret) XSRETURN_EMPTY; |
26
|
0 |
9 |
mXPUSHs(ret.detach()); |
|
0 |
0 |
mXPUSHs(ret.detach()); |
|
9 |
0 |
mXPUSHs(ret.detach()); |
28
|
23 |
0 |
}); } |
32
|
35 |
0 |
CV* cv = MUTABLE_CV(newSV_type(SvTYPE(proto))); |
36
|
35 |
0 |
CvGV_set(cv,CvGV(proto)); |
|
35 |
0 |
CvGV_set(cv,CvGV(proto)); |
37
|
35 |
0 |
CvSTASH_set(cv, CvSTASH(proto)); |
48
|
35 |
0 |
return Sub::noinc(cv); |
55
|
35 |
0 |
ret.payload_attach(fc, &marker); |
59
|
36 |
0 |
}} |
|
36 |
0 |
}} |