line |
true |
false |
branch |
34
|
0 |
1 |
if(!register_future_asyncawait_hook_func) |
45
|
1 |
7 |
if((svp = hv_fetchs(PL_modglobal, "Future::AsyncAwait/loaded", FALSE)) && SvOK(*svp)) { |
|
0 |
1 |
if((svp = hv_fetchs(PL_modglobal, "Future::AsyncAwait/loaded", FALSE)) && SvOK(*svp)) { |
|
0 |
0 |
if((svp = hv_fetchs(PL_modglobal, "Future::AsyncAwait/loaded", FALSE)) && SvOK(*svp)) { |
|
0 |
0 |
if((svp = hv_fetchs(PL_modglobal, "Future::AsyncAwait/loaded", FALSE)) && SvOK(*svp)) { |
52
|
0 |
7 |
if(svp) |
74
|
0 |
0 |
if(!future_asyncawait_get_modhookdata_func) |
84
|
0 |
0 |
if(!future_asyncawait_make_precreate_padix_func) |
94
|
1 |
0 |
SV *versv = ver ? newSVnv(ver) : NULL; |
99
|
0 |
1 |
if(!svp) |
101
|
1 |
0 |
int abi_ver = SvIV(*svp); |
102
|
0 |
1 |
if(abi_ver > FUTURE_ASYNCAWAIT_ABI_VERSION) |
107
|
1 |
0 |
abi_ver = SvIV(*svp); |
108
|
0 |
1 |
if(abi_ver < FUTURE_ASYNCAWAIT_ABI_VERSION) |
112
|
0 |
1 |
register_future_asyncawait_hook_func = INT2PTR(void (*)(pTHX_ const struct AsyncAwaitHookFuncs *, void *), |
115
|
0 |
1 |
future_asyncawait_get_modhookdata_func = INT2PTR(HV *(*)(pTHX_ CV *, U32, PADOFFSET), |
118
|
0 |
1 |
future_asyncawait_make_precreate_padix_func = INT2PTR(PADOFFSET (*)(pTHX), |
183
|
0 |
0 |
if(*oldhookp) |
194
|
0 |
0 |
if(!*oldhookp) { |
196
|
0 |
0 |
if(hookp && SvOK(*hookp)) |
|
0 |
0 |
if(hookp && SvOK(*hookp)) |
|
0 |
0 |
if(hookp && SvOK(*hookp)) |
|
0 |
0 |
if(hookp && SvOK(*hookp)) |
197
|
0 |
0 |
*oldhookp = INT2PTR(SuspendHookFunc *, SvUV(*hookp)); |