line |
true |
false |
branch |
199
|
234 |
0 |
if(!SvOK(regsv)) { |
|
234 |
0 |
if(!SvOK(regsv)) { |
|
234 |
0 |
if(!SvOK(regsv)) { |
200
|
0 |
234 |
if(!add) |
213
|
0 |
0 |
return INT2PTR(struct HookRegistrations *, SvUV(regsv)); |
220
|
0 |
0 |
if(hookfuncs->flags) |
225
|
0 |
0 |
if(regs->count == regs->size) { |
227
|
0 |
0 |
Renew(regs->arr, regs->size, struct HookRegistration); |
396
|
225 |
119 |
for(magic = mg_find((SV *)cv, PERL_MAGIC_ext); magic; magic = magic->mg_moremagic) |
397
|
225 |
0 |
if(magic->mg_type == PERL_MAGIC_ext && magic->mg_virtual == &vtbl_suspendedstate) |
|
225 |
0 |
if(magic->mg_type == PERL_MAGIC_ext && magic->mg_virtual == &vtbl_suspendedstate) |
425
|
10 |
76 |
if(state->awaiting_future) { |
430
|
10 |
76 |
if(state->returning_future) { |
435
|
10 |
76 |
if(state->frames) { |
437
|
11 |
10 |
while((frame = next)) { |
440
|
3 |
8 |
if(frame->stacklen) { |
447
|
3 |
8 |
if(frame->marklen) { |
451
|
3 |
8 |
if(frame->saved) { |
453
|
7 |
3 |
for(idx = 0; idx < frame->savedlen; idx++) { |
497
|
0 |
0 |
if(name) |
524
|
0 |
0 |
if(frame->el.loop.state_u.ary.ary) |
546
|
2 |
9 |
if(frame->mortals) { |
548
|
2 |
2 |
for(i = 0; i < frame->mortallen; i++) |
558
|
10 |
76 |
if(state->padslots) { |
560
|
37 |
10 |
for(i = 0; i < state->padlen - 1; i++) { |
561
|
12 |
25 |
if(state->padslots[i]) |
570
|
10 |
76 |
if(state->defav) { |
575
|
3 |
83 |
if(state->modhookdata) { |
578
|
0 |
3 |
if(regs) |
579
|
0 |
0 |
RUN_HOOKS_REV(free, (CV *)sv, state->modhookdata); |
|
0 |
0 |
RUN_HOOKS_REV(free, (CV *)sv, state->modhookdata); |
583
|
0 |
3 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
585
|
0 |
0 |
SuspendHookFunc *hook = INT2PTR(SuspendHookFunc *, SvUV(*hookp)); |
601
|
30 |
121 |
if(frame->stacklen) { |
605
|
0 |
30 |
Newx(frame->stack, frame->stacklen, SV *); |
606
|
63 |
30 |
for(i = 0; i < frame->stacklen; i++) { |
614
|
19 |
132 |
if(frame->marklen) { |
617
|
0 |
19 |
Newx(frame->marks, frame->marklen, I32); |
618
|
21 |
19 |
for(i = 0; i < frame->marklen; i++) { |
633
|
37 |
114 |
if(savedlen) |
634
|
0 |
37 |
Newx(frame->saved, savedlen, struct Saved); |
648
|
50 |
151 |
while(PL_savestack_ix > old_saveix) { |
666
|
6 |
5 |
saved->type = count == 1 ? SAVEt_CLEARSV : SAVEt_CLEARPADRANGE; |
694
|
0 |
0 |
PL_curpad = PL_comppad ? AvARRAY(PL_comppad) : NULL; |
727
|
0 |
0 |
if(var == (int *)&PL_tmps_floor) { |
780
|
0 |
0 |
if(var < PL_curpad || var > PL_curpad + AvFILL(PL_comppad)) |
|
0 |
0 |
if(var < PL_curpad || var > PL_curpad + AvFILL(PL_comppad)) |
|
0 |
0 |
if(var < PL_curpad || var > PL_curpad + AvFILL(PL_comppad)) |
805
|
0 |
0 |
if(var == (STRLEN *)&PL_tmps_floor) { |
830
|
0 |
5 |
if(gv != PL_errgv) { |
832
|
0 |
0 |
const char *stashname = HvNAME(GvSTASH(gv)); |
|
0 |
0 |
const char *stashname = HvNAME(GvSTASH(gv)); |
|
0 |
0 |
const char *stashname = HvNAME(GvSTASH(gv)); |
|
0 |
0 |
const char *stashname = HvNAME(GvSTASH(gv)); |
|
0 |
0 |
const char *stashname = HvNAME(GvSTASH(gv)); |
|
0 |
0 |
const char *stashname = HvNAME(GvSTASH(gv)); |
834
|
0 |
0 |
if(name && stashname) |
858
|
0 |
0 |
if(padav != PL_comppad) |
890
|
0 |
0 |
if(name) |
903
|
0 |
151 |
if(OLDSAVEIX(cx) != PL_savestack_ix) |
907
|
112 |
39 |
if(frame->scopes) { |
940
|
0 |
25 |
if(!CxPADLOOP(cx)) |
961
|
25 |
0 |
if(CxITERVAR(cx) != &PAD_SVl(cx->blk_loop.my_op->op_targ)) |
|
0 |
0 |
if(CxITERVAR(cx) != &PAD_SVl(cx->blk_loop.my_op->op_targ)) |
|
0 |
25 |
if(CxITERVAR(cx) != &PAD_SVl(cx->blk_loop.my_op->op_targ)) |
990
|
3 |
0 |
if(frame->el.loop.state_u.ary.ary) |
1006
|
0 |
16 |
if(cx->blk_oldsp != height) |
1022
|
0 |
114 |
if(!(cx->cx_type & CXp_TRYBLOCK)) |
1024
|
0 |
114 |
if(cx->blk_eval.old_namesv) |
1026
|
0 |
114 |
if(cx->blk_eval.cv) |
1028
|
0 |
114 |
if(cx->blk_eval.cur_top_env != PL_top_env) |
1057
|
151 |
0 |
if(oldtmpsfloor == -2) { |
1066
|
19 |
132 |
if(frame->mortallen) { |
1067
|
0 |
19 |
Newx(frame->mortals, frame->mortallen, SV *); |
1068
|
25 |
19 |
for(i = 0; i < frame->mortallen; i++) { |
1091
|
263 |
0 |
for(cxix = cxstack_ix; cxix; cxix--) { |
1093
|
151 |
112 |
if(CxTYPE(cx) == CXt_SUB) |
1122
|
321 |
112 |
for(i = 1; i <= pad_max; i++) { |
1123
|
321 |
0 |
PADNAME *pname = (i <= padnames_max) ? padnames[i] : NULL; |
1125
|
231 |
90 |
if(!padname_is_normal_lexical(pname)) { |
1130
|
0 |
90 |
if(PadnameIsSTATE(pname)) { |
1154
|
2 |
110 |
if(PL_curpm) |
1174
|
112 |
0 |
if(PAD_SVl(0) == (SV *)state->defav) { |
1248
|
0 |
104 |
if(CATCH_GET) |
1259
|
0 |
104 |
CLEAR_ERRSV(); |
|
0 |
104 |
CLEAR_ERRSV(); |
|
0 |
104 |
CLEAR_ERRSV(); |
1279
|
27 |
113 |
if(frame->stacklen) { |
1281
|
0 |
27 |
EXTEND(SP, frame->stacklen); |
1283
|
58 |
27 |
for(i = 0; i < frame->stacklen; i++) { |
1291
|
16 |
124 |
if(frame->marklen) { |
1292
|
18 |
16 |
for(i = 0; i < frame->marklen; i++) { |
1294
|
0 |
18 |
PUSHMARK(PL_stack_base + absmark); |
1302
|
43 |
140 |
for(i = frame->savedlen - 1; i >= 0; i--) { |
1325
|
0 |
0 |
PL_curpad = PL_comppad ? AvARRAY(PL_comppad) : NULL; |
1394
|
34 |
106 |
if(frame->saved) |
1405
|
17 |
123 |
if(frame->mortallen) { |
1406
|
23 |
17 |
for(i = 0; i < frame->mortallen; i++) { |
1414
|
15 |
125 |
switch(frame->type) { |
1434
|
0 |
15 |
if(PL_stack_base[cx->blk_loop.state_u.stack.basesp+1] == frame->loop_list_first_item) |
1458
|
102 |
0 |
if(state->padlen) { |
1463
|
284 |
102 |
for(i = 1; i < state->padlen; i++) { |
1464
|
209 |
75 |
if(!state->padslots[i-1]) |
1477
|
140 |
102 |
for(frame = state->frames; frame; frame = next) { |
1486
|
2 |
100 |
if(state->curpm) |
1489
|
102 |
0 |
if(state->defav) { |
1503
|
6 |
7 |
for(frame = state->frames; frame; frame = frame->next) { |
1506
|
3 |
6 |
for(i = frame->savedlen - 1; i >= 0; i--) { |
1509
|
0 |
3 |
switch(saved->type) { |
1534
|
0 |
191 |
return SvUV(SvRV(*hv_fetchs(GvHV(PL_hintgv), "Future::AsyncAwait/*precreate_padix", 0))); |
1541
|
0 |
4 |
PADOFFSET padix = SvUV(sv = SvRV(*hv_fetchs(GvHV(PL_hintgv), "Future::AsyncAwait/*precreate_padix", 0))); |
1542
|
4 |
0 |
if(!padix) { |
1562
|
20 |
1 |
if(class == &PL_sv_placeholder) |
1574
|
0 |
83 |
EXTEND(SP, 1); |
1579
|
0 |
83 |
PUSHMARK(mark); |
1585
|
100 |
83 |
for (svp = SP; svp >= bottom; svp--) { |
1589
|
65 |
18 |
if(f) { |
1607
|
83 |
0 |
FREETMPS; |
1623
|
0 |
13 |
PUSHMARK(SP); |
1624
|
10 |
3 |
if(f) { |
1642
|
13 |
0 |
FREETMPS; |
1658
|
0 |
87 |
PUSHMARK(SP); |
1668
|
87 |
0 |
FREETMPS; |
1671
|
0 |
87 |
if(!SvROK(f)) |
1685
|
355 |
0 |
if(!f || !SvOK(f)) |
|
0 |
355 |
if(!f || !SvOK(f)) |
|
0 |
0 |
if(!f || !SvOK(f)) |
|
0 |
0 |
if(!f || !SvOK(f)) |
1687
|
0 |
355 |
if(!SvROK(f)) |
1693
|
0 |
355 |
PUSHMARK(SP); |
1694
|
0 |
355 |
EXTEND(SP, 1); |
1702
|
355 |
0 |
bool ret = SvTRUEx(POPs); |
|
0 |
355 |
bool ret = SvTRUEx(POPs); |
|
0 |
0 |
bool ret = SvTRUEx(POPs); |
|
129 |
226 |
bool ret = SvTRUEx(POPs); |
|
129 |
0 |
bool ret = SvTRUEx(POPs); |
|
0 |
129 |
bool ret = SvTRUEx(POPs); |
|
0 |
226 |
bool ret = SvTRUEx(POPs); |
|
0 |
0 |
bool ret = SvTRUEx(POPs); |
|
0 |
0 |
bool ret = SvTRUEx(POPs); |
|
0 |
0 |
bool ret = SvTRUEx(POPs); |
|
0 |
0 |
bool ret = SvTRUEx(POPs); |
|
0 |
0 |
bool ret = SvTRUEx(POPs); |
|
226 |
0 |
bool ret = SvTRUEx(POPs); |
|
226 |
0 |
bool ret = SvTRUEx(POPs); |
|
112 |
114 |
bool ret = SvTRUEx(POPs); |
|
0 |
112 |
bool ret = SvTRUEx(POPs); |
|
0 |
0 |
bool ret = SvTRUEx(POPs); |
|
114 |
112 |
bool ret = SvTRUEx(POPs); |
|
0 |
0 |
bool ret = SvTRUEx(POPs); |
1705
|
355 |
0 |
FREETMPS; |
1718
|
0 |
110 |
PUSHMARK(SP); |
1719
|
0 |
110 |
EXTEND(SP, 1); |
1736
|
0 |
112 |
PUSHMARK(SP); |
1737
|
0 |
112 |
EXTEND(SP, 2); |
1744
|
112 |
0 |
FREETMPS; |
1756
|
0 |
4 |
PUSHMARK(SP); |
1757
|
0 |
4 |
EXTEND(SP, 2); |
1764
|
4 |
0 |
FREETMPS; |
1776
|
0 |
112 |
PUSHMARK(SP); |
1777
|
0 |
112 |
EXTEND(SP, 2); |
1784
|
112 |
0 |
FREETMPS; |
1795
|
0 |
2 |
PUSHMARK(SP); |
1796
|
0 |
2 |
EXTEND(SP, 1); |
1800
|
2 |
0 |
call_method("AWAIT_WAIT", GIMME_V); |
1813
|
0 |
0 |
if(!state) { |
1814
|
0 |
0 |
if(!precreate_padix) |
1817
|
0 |
0 |
if(!(flags & FAA_MODHOOK_CREATE)) |
1823
|
0 |
0 |
if((flags & FAA_MODHOOK_CREATE) && !state->modhookdata) |
|
0 |
0 |
if((flags & FAA_MODHOOK_CREATE) && !state->modhookdata) |
1838
|
4 |
0 |
if(precreate_padix) { |
1856
|
77 |
21 |
if(state && state->returning_future) { |
|
77 |
0 |
if(state && state->returning_future) { |
1861
|
77 |
21 |
if(f && !SvROK(f)) { |
|
2 |
75 |
if(f && !SvROK(f)) { |
1864
|
2 |
0 |
if(SvTRUE(ERRSV)) { |
|
2 |
0 |
if(SvTRUE(ERRSV)) { |
|
2 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
2 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
2 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
2 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
2 |
0 |
if(SvTRUE(ERRSV)) { |
|
2 |
0 |
if(SvTRUE(ERRSV)) { |
|
2 |
0 |
if(SvTRUE(ERRSV)) { |
|
2 |
0 |
if(SvTRUE(ERRSV)) { |
|
2 |
0 |
if(SvTRUE(ERRSV)) { |
|
1 |
1 |
if(SvTRUE(ERRSV)) { |
|
1 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
1 |
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 |
1 |
if(SvTRUE(ERRSV)) { |
1868
|
1 |
0 |
if(!CvANON(curcv)) |
1869
|
1 |
0 |
warn("Abandoned async sub %s::%s failed: %" SVf, |
|
0 |
1 |
warn("Abandoned async sub %s::%s failed: %" SVf, |
1870
|
1 |
0 |
HvNAME(GvSTASH(gv)), GvNAME(gv), SVfARG(ERRSV)); |
|
1 |
0 |
HvNAME(GvSTASH(gv)), GvNAME(gv), SVfARG(ERRSV)); |
|
0 |
0 |
HvNAME(GvSTASH(gv)), GvNAME(gv), SVfARG(ERRSV)); |
|
1 |
0 |
HvNAME(GvSTASH(gv)), GvNAME(gv), SVfARG(ERRSV)); |
|
0 |
1 |
HvNAME(GvSTASH(gv)), GvNAME(gv), SVfARG(ERRSV)); |
1872
|
0 |
0 |
warn("Abandoned async sub CODE(0x%p) in package %s failed: %" SVf, |
|
0 |
0 |
warn("Abandoned async sub CODE(0x%p) in package %s failed: %" SVf, |
1873
|
0 |
0 |
curcv, HvNAME(GvSTASH(gv)), SVfARG(ERRSV)); |
|
0 |
0 |
curcv, HvNAME(GvSTASH(gv)), SVfARG(ERRSV)); |
|
0 |
0 |
curcv, HvNAME(GvSTASH(gv)), SVfARG(ERRSV)); |
|
0 |
0 |
curcv, HvNAME(GvSTASH(gv)), SVfARG(ERRSV)); |
|
0 |
0 |
curcv, HvNAME(GvSTASH(gv)), SVfARG(ERRSV)); |
1879
|
96 |
0 |
if(SvTRUE(ERRSV)) { |
|
96 |
0 |
if(SvTRUE(ERRSV)) { |
|
96 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
96 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
96 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
96 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
96 |
0 |
if(SvTRUE(ERRSV)) { |
|
93 |
3 |
if(SvTRUE(ERRSV)) { |
|
93 |
0 |
if(SvTRUE(ERRSV)) { |
|
93 |
0 |
if(SvTRUE(ERRSV)) { |
|
93 |
0 |
if(SvTRUE(ERRSV)) { |
|
83 |
10 |
if(SvTRUE(ERRSV)) { |
|
83 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
83 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
10 |
83 |
if(SvTRUE(ERRSV)) { |
|
3 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
3 |
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)) { |
|
3 |
0 |
if(SvTRUE(ERRSV)) { |
|
3 |
0 |
if(SvTRUE(ERRSV)) { |
1880
|
13 |
0 |
ret = future_fail(f, ERRSV); |
1894
|
96 |
98 |
while(SP > oldsp) |
1897
|
96 |
2 |
if(ret) { |
1898
|
0 |
96 |
EXTEND(SP, 1); |
1903
|
77 |
21 |
if(f) |
1927
|
8 |
234 |
AV *precancel = precreate_padix ? (AV *)PAD_SVl(precreate_padix + PRECREATE_CANCEL) : NULL; |
1931
|
147 |
95 |
if(state && state->awaiting_future && CATCH_GET) { |
|
119 |
28 |
if(state && state->awaiting_future && CATCH_GET) { |
|
11 |
108 |
if(state && state->awaiting_future && CATCH_GET) { |
1940
|
136 |
95 |
if(state && state->curcop) |
|
108 |
28 |
if(state && state->curcop) |
1950
|
136 |
95 |
if(state) { |
1951
|
133 |
3 |
if(!SvROK(state->returning_future) || future_is_cancelled(state->returning_future)) { |
|
4 |
129 |
if(!SvROK(state->returning_future) || future_is_cancelled(state->returning_future)) { |
1952
|
3 |
4 |
if(!SvROK(state->returning_future)) { |
1954
|
2 |
1 |
if(!CvANON(curcv)) |
1955
|
2 |
0 |
warn("Suspended async sub %s::%s lost its returning future", HvNAME(GvSTASH(gv)), GvNAME(gv)); |
|
2 |
0 |
warn("Suspended async sub %s::%s lost its returning future", HvNAME(GvSTASH(gv)), GvNAME(gv)); |
|
0 |
2 |
warn("Suspended async sub %s::%s lost its returning future", HvNAME(GvSTASH(gv)), GvNAME(gv)); |
|
0 |
0 |
warn("Suspended async sub %s::%s lost its returning future", HvNAME(GvSTASH(gv)), GvNAME(gv)); |
|
2 |
0 |
warn("Suspended async sub %s::%s lost its returning future", HvNAME(GvSTASH(gv)), GvNAME(gv)); |
|
0 |
2 |
warn("Suspended async sub %s::%s lost its returning future", HvNAME(GvSTASH(gv)), GvNAME(gv)); |
1957
|
1 |
0 |
warn("Suspended async sub CODE(0x%p) in package %s lost its returning future", curcv, HvNAME(GvSTASH(gv))); |
|
1 |
0 |
warn("Suspended async sub CODE(0x%p) in package %s lost its returning future", curcv, HvNAME(GvSTASH(gv))); |
|
0 |
1 |
warn("Suspended async sub CODE(0x%p) in package %s lost its returning future", curcv, HvNAME(GvSTASH(gv))); |
|
0 |
0 |
warn("Suspended async sub CODE(0x%p) in package %s lost its returning future", curcv, HvNAME(GvSTASH(gv))); |
|
1 |
0 |
warn("Suspended async sub CODE(0x%p) in package %s lost its returning future", curcv, HvNAME(GvSTASH(gv))); |
|
0 |
1 |
warn("Suspended async sub CODE(0x%p) in package %s lost its returning future", curcv, HvNAME(GvSTASH(gv))); |
1964
|
0 |
7 |
PUSHMARK(SP); |
1970
|
129 |
95 |
if(state && state->awaiting_future) { |
|
102 |
27 |
if(state && state->awaiting_future) { |
1983
|
102 |
102 |
while(sp > PL_stack_base + orig_height) |
1991
|
0 |
102 |
while(PL_markstack_ptr > PL_markstack + orig_height) |
1993
|
0 |
102 |
PUSHMARK(SP); |
1998
|
0 |
102 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
2000
|
0 |
0 |
SuspendHookFunc *hook = INT2PTR(SuspendHookFunc *, SvUV(*hookp)); |
2001
|
0 |
0 |
if(!state->modhookdata) |
2009
|
0 |
102 |
if(regs) |
2010
|
0 |
0 |
RUN_HOOKS_REV(pre_resume, curcv, state->modhookdata); |
|
0 |
0 |
RUN_HOOKS_REV(pre_resume, curcv, state->modhookdata); |
2014
|
0 |
102 |
if(regs) |
2015
|
0 |
0 |
RUN_HOOKS_FWD(post_resume, curcv, state->modhookdata); |
|
0 |
0 |
RUN_HOOKS_FWD(post_resume, curcv, state->modhookdata); |
2026
|
0 |
224 |
if(!sv_isobject(f)) |
2029
|
2 |
222 |
if(PL_op->op_flags & OPf_SPECIAL) { |
2034
|
110 |
112 |
if(future_is_ready(f)) { |
2037
|
104 |
6 |
if(state) |
2040
|
102 |
8 |
future_get_to_stack(f, GIMME_V); |
2049
|
87 |
25 |
if(!state) { |
2060
|
3 |
84 |
HV *premodhookdata = precreate_padix ? (HV *)PAD_SVl(precreate_padix + PRECREATE_MODHOOKDATA) : NULL; |
2061
|
3 |
84 |
if(premodhookdata) { |
2066
|
0 |
87 |
if(regs) { |
2067
|
0 |
0 |
if(!state->modhookdata) |
2069
|
0 |
0 |
RUN_HOOKS_FWD(post_cv_copy, runcv, curcv, state->modhookdata); |
|
0 |
0 |
RUN_HOOKS_FWD(post_cv_copy, runcv, curcv, state->modhookdata); |
2081
|
0 |
112 |
if(regs) |
2082
|
0 |
0 |
RUN_HOOKS_REV(pre_suspend, curcv, state->modhookdata); |
|
0 |
0 |
RUN_HOOKS_REV(pre_suspend, curcv, state->modhookdata); |
2087
|
0 |
112 |
if(regs) |
2088
|
0 |
0 |
RUN_HOOKS_FWD(post_suspend, curcv, state->modhookdata); |
|
0 |
0 |
RUN_HOOKS_FWD(post_suspend, curcv, state->modhookdata); |
2093
|
0 |
112 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
|
0 |
0 |
if(hookp && SvOK(*hookp) && SvUV(*hookp)) { |
2095
|
0 |
0 |
SuspendHookFunc *hook = INT2PTR(SuspendHookFunc *, SvUV(*hookp)); |
2096
|
0 |
0 |
if(!state->modhookdata) |
2110
|
0 |
112 |
if(SvREFCNT(curcv) < 2) { |
2117
|
87 |
25 |
if(!state->returning_future) { |
2120
|
3 |
84 |
if(precancel) { |
2122
|
0 |
6 |
for(i = 0; i < av_count(precancel); i++) |
|
3 |
3 |
for(i = 0; i < av_count(precancel); i++) |
2134
|
87 |
25 |
if(defer_mortal_curcv) |
2137
|
0 |
112 |
PUSHMARK(SP); |
2141
|
87 |
25 |
if(!SvWEAKREF(state->returning_future)) |
2143
|
0 |
112 |
if(!SvROK(state->returning_future)) |
2149
|
0 |
112 |
if(!SvROK(state->returning_future)) |
2153
|
0 |
112 |
if(!SvROK(state->awaiting_future)) |
2168
|
1 |
3 |
if(state && state->returning_future) { |
|
1 |
0 |
if(state && state->returning_future) { |
2193
|
96 |
1601 |
if(OP_CLASS(op) == OA_COP) |
|
271 |
1426 |
if(OP_CLASS(op) == OA_COP) |
2198
|
13 |
4 |
if((op_first = cUNOPx(op)->op_first)->op_type != OP_ENTERITER) |
2206
|
13 |
0 |
kid = OpSIBLING(op_first); |
2208
|
2 |
11 |
if(!op_first->op_targ) |
2215
|
3 |
0 |
if((op_first = cUNOPx(op)->op_first)->op_type != OP_PUSHMARK) |
2218
|
3 |
0 |
kid = OpSIBLING(op_first); |
2219
|
1 |
2 |
check_optree(aTHX_ kid, |
2222
|
1 |
0 |
kid = OpSIBLING(kid); |
2226
|
92 |
4 |
if(op->op_ppaddr != &pp_await) |
2228
|
3 |
89 |
if(!forbid) |
2245
|
3 |
0 |
croak("await is not allowed inside %s at %s line %d.\n", |
2250
|
733 |
959 |
if(op->op_flags & OPf_KIDS) { |
2251
|
719 |
14 |
if(!kid) |
2253
|
849 |
715 |
for(; kid; kid = OpSIBLING(kid)) |
|
1579 |
718 |
for(; kid; kid = OpSIBLING(kid)) |
2277
|
102 |
0 |
if(ctx->body) { |
2290
|
96 |
3 |
if(ctx->body->op_type == OP_LINESEQ) { |
2296
|
0 |
96 |
if(o->op_type == OP_NULL && o->op_flags & OPf_KIDS && |
|
0 |
0 |
if(o->op_type == OP_NULL && o->op_flags & OPf_KIDS && |
|
0 |
0 |
if(o->op_type == OP_NULL && o->op_flags & OPf_KIDS && |
2301
|
96 |
0 |
if(o->op_type == OP_NEXTSTATE && |
|
7 |
89 |
if(o->op_type == OP_NEXTSTATE && |
2302
|
96 |
0 |
OpSIBLING(o)->op_type == OP_ARGCHECK) { |
2306
|
7 |
0 |
o = OpSIBLING(OpSIBLING(o)); |
|
7 |
0 |
o = OpSIBLING(OpSIBLING(o)); |
|
7 |
0 |
o = OpSIBLING(OpSIBLING(o)); |
2307
|
7 |
0 |
OpMORESIB_set(OpSIBLING(argcheckop), NULL); |
|
7 |
0 |
OpMORESIB_set(OpSIBLING(argcheckop), NULL); |
2321
|
4 |
95 |
if(precreate_padix) { |
2338
|
7 |
92 |
if(argcheckop) { |
2342
|
14 |
0 |
while(OpSIBLING(o)) |
|
7 |
7 |
while(OpSIBLING(o)) |
2343
|
0 |
7 |
o = OpSIBLING(o); |
2355
|
1 |
98 |
if(CvLVALUE(ctx->cv)) |
2371
|
95 |
3 |
if(asynccvp && SvUV(*asynccvp) == PTR2UV(PL_compcv)) |
|
0 |
95 |
if(asynccvp && SvUV(*asynccvp) == PTR2UV(PL_compcv)) |
|
2 |
93 |
if(asynccvp && SvUV(*asynccvp) == PTR2UV(PL_compcv)) |
2373
|
3 |
2 |
else if(PL_compcv == PL_main_cv) |
2376
|
1 |
2 |
croak(CvEVAL(PL_compcv) ? |
|
0 |
1 |
croak(CvEVAL(PL_compcv) ? |
2385
|
2 |
92 |
if(PL_compcv == PL_main_cv) |
2406
|
4 |
0 |
if(!asynccvp || SvUV(*asynccvp) != PTR2UV(PL_compcv)) |
|
0 |
4 |
if(!asynccvp || SvUV(*asynccvp) != PTR2UV(PL_compcv)) |
|
0 |
4 |
if(!asynccvp || SvUV(*asynccvp) != PTR2UV(PL_compcv)) |
2407
|
0 |
0 |
croak(CvEVAL(PL_compcv) ? |
|
0 |
0 |
croak(CvEVAL(PL_compcv) ? |
2412
|
0 |
4 |
if(!hv_fetchs(GvHV(PL_hintgv), "Future::AsyncAwait/experimental(cancel)", 0)) { |
2457
|
0 |
0 |
if(hookfuncs_v1->flags) |
2530
|
0 |
45 |
if(svp = hv_fetchs(PL_modglobal, "Future::AsyncAwait/on_loaded", FALSE)) { |
2537
|
0 |
45 |
if(run_on_loaded) { |
2541
|
0 |
0 |
for(i = 0; i < AvFILL(run_on_loaded); i += 2) { |
|
0 |
0 |
for(i = 0; i < AvFILL(run_on_loaded); i += 2) { |
2542
|
0 |
0 |
void (*func)(pTHX_ void *data) = INT2PTR(void *, SvUV(svp[i ])); |
2543
|
0 |
0 |
void *data = INT2PTR(void *, SvUV(svp[i+1])); |