line |
true |
false |
branch |
199
|
252 |
0 |
if(!SvOK(regsv)) { |
|
252 |
0 |
if(!SvOK(regsv)) { |
|
252 |
0 |
if(!SvOK(regsv)) { |
200
|
0 |
252 |
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
|
238 |
132 |
for(magic = mg_find((SV *)cv, PERL_MAGIC_ext); magic; magic = magic->mg_moremagic) |
397
|
238 |
0 |
if(magic->mg_type == PERL_MAGIC_ext && magic->mg_virtual == &vtbl_suspendedstate) |
|
238 |
0 |
if(magic->mg_type == PERL_MAGIC_ext && magic->mg_virtual == &vtbl_suspendedstate) |
425
|
11 |
82 |
if(state->awaiting_future) { |
430
|
11 |
82 |
if(state->returning_future) { |
435
|
11 |
82 |
if(state->frames) { |
437
|
13 |
11 |
while((frame = next)) { |
440
|
3 |
10 |
if(frame->stacklen) { |
447
|
3 |
10 |
if(frame->marklen) { |
451
|
4 |
9 |
if(frame->saved) { |
453
|
8 |
4 |
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 |
11 |
if(frame->mortals) { |
548
|
2 |
2 |
for(i = 0; i < frame->mortallen; i++) |
558
|
11 |
82 |
if(state->padslots) { |
560
|
39 |
11 |
for(i = 0; i < state->padlen - 1; i++) { |
561
|
12 |
27 |
if(state->padslots[i]) |
570
|
11 |
82 |
if(state->defav) { |
578
|
3 |
90 |
if(state->modhookdata) { |
581
|
0 |
3 |
if(regs) |
582
|
0 |
0 |
RUN_HOOKS_REV(free, (CV *)sv, state->modhookdata); |
|
0 |
0 |
RUN_HOOKS_REV(free, (CV *)sv, state->modhookdata); |
586
|
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)) { |
588
|
0 |
0 |
SuspendHookFunc *hook = INT2PTR(SuspendHookFunc *, SvUV(*hookp)); |
604
|
30 |
136 |
if(frame->stacklen) { |
608
|
0 |
30 |
Newx(frame->stack, frame->stacklen, SV *); |
609
|
63 |
30 |
for(i = 0; i < frame->stacklen; i++) { |
617
|
19 |
147 |
if(frame->marklen) { |
620
|
0 |
19 |
Newx(frame->marks, frame->marklen, I32); |
621
|
21 |
19 |
for(i = 0; i < frame->marklen; i++) { |
636
|
48 |
118 |
if(savedlen) |
637
|
0 |
48 |
Newx(frame->saved, savedlen, struct Saved); |
651
|
64 |
166 |
while(PL_savestack_ix > old_saveix) { |
669
|
6 |
5 |
saved->type = count == 1 ? SAVEt_CLEARSV : SAVEt_CLEARPADRANGE; |
697
|
0 |
0 |
PL_curpad = PL_comppad ? AvARRAY(PL_comppad) : NULL; |
730
|
0 |
0 |
if(var == (int *)&PL_tmps_floor) { |
783
|
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)) |
808
|
0 |
0 |
if(var == (STRLEN *)&PL_tmps_floor) { |
833
|
0 |
9 |
if(gv != PL_errgv) { |
835
|
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)); |
837
|
0 |
0 |
if(name && stashname) |
861
|
0 |
0 |
if(padav != PL_comppad) |
893
|
0 |
0 |
if(name) |
906
|
0 |
166 |
if(OLDSAVEIX(cx) != PL_savestack_ix) |
910
|
119 |
47 |
if(frame->scopes) { |
943
|
0 |
25 |
if(!CxPADLOOP(cx)) |
964
|
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)) |
993
|
3 |
0 |
if(frame->el.loop.state_u.ary.ary) |
1009
|
0 |
16 |
if(cx->blk_oldsp != height) |
1025
|
0 |
124 |
if(!(cx->cx_type & CXp_TRYBLOCK)) |
1027
|
0 |
124 |
if(cx->blk_eval.old_namesv) |
1029
|
0 |
124 |
if(cx->blk_eval.cv) |
1031
|
0 |
124 |
if(cx->blk_eval.cur_top_env != PL_top_env) |
1060
|
166 |
0 |
if(oldtmpsfloor == -2) { |
1069
|
19 |
147 |
if(frame->mortallen) { |
1070
|
0 |
19 |
Newx(frame->mortals, frame->mortallen, SV *); |
1071
|
25 |
19 |
for(i = 0; i < frame->mortallen; i++) { |
1094
|
285 |
0 |
for(cxix = cxstack_ix; cxix; cxix--) { |
1096
|
166 |
119 |
if(CxTYPE(cx) == CXt_SUB) |
1125
|
341 |
119 |
for(i = 1; i <= pad_max; i++) { |
1126
|
341 |
0 |
PADNAME *pname = (i <= padnames_max) ? padnames[i] : NULL; |
1128
|
239 |
102 |
if(!padname_is_normal_lexical(pname)) { |
1133
|
0 |
102 |
if(PadnameIsSTATE(pname)) { |
1157
|
2 |
117 |
if(PL_curpm) |
1246
|
0 |
113 |
if(CATCH_GET) |
1257
|
0 |
113 |
CLEAR_ERRSV(); |
|
0 |
113 |
CLEAR_ERRSV(); |
|
0 |
113 |
CLEAR_ERRSV(); |
1277
|
27 |
126 |
if(frame->stacklen) { |
1279
|
0 |
27 |
EXTEND(SP, frame->stacklen); |
1281
|
58 |
27 |
for(i = 0; i < frame->stacklen; i++) { |
1289
|
16 |
137 |
if(frame->marklen) { |
1290
|
18 |
16 |
for(i = 0; i < frame->marklen; i++) { |
1292
|
0 |
18 |
PUSHMARK(PL_stack_base + absmark); |
1300
|
56 |
153 |
for(i = frame->savedlen - 1; i >= 0; i--) { |
1323
|
0 |
0 |
PL_curpad = PL_comppad ? AvARRAY(PL_comppad) : NULL; |
1392
|
44 |
109 |
if(frame->saved) |
1403
|
17 |
136 |
if(frame->mortallen) { |
1404
|
23 |
17 |
for(i = 0; i < frame->mortallen; i++) { |
1412
|
15 |
138 |
switch(frame->type) { |
1432
|
0 |
15 |
if(PL_stack_base[cx->blk_loop.state_u.stack.basesp+1] == frame->loop_list_first_item) |
1456
|
108 |
0 |
if(state->padlen) { |
1461
|
302 |
108 |
for(i = 1; i < state->padlen; i++) { |
1462
|
215 |
87 |
if(!state->padslots[i-1]) |
1475
|
153 |
108 |
for(frame = state->frames; frame; frame = next) { |
1484
|
2 |
106 |
if(state->curpm) |
1487
|
108 |
0 |
if(state->defav) { |
1501
|
8 |
8 |
for(frame = state->frames; frame; frame = frame->next) { |
1504
|
4 |
8 |
for(i = frame->savedlen - 1; i >= 0; i--) { |
1507
|
1 |
3 |
switch(saved->type) { |
1532
|
0 |
209 |
return SvUV(SvRV(*hv_fetchs(GvHV(PL_hintgv), "Future::AsyncAwait/*precreate_padix", 0))); |
1539
|
0 |
4 |
PADOFFSET padix = SvUV(sv = SvRV(*hv_fetchs(GvHV(PL_hintgv), "Future::AsyncAwait/*precreate_padix", 0))); |
1540
|
4 |
0 |
if(!padix) { |
1560
|
22 |
1 |
if(class == &PL_sv_placeholder) |
1572
|
0 |
91 |
EXTEND(SP, 1); |
1577
|
0 |
91 |
PUSHMARK(mark); |
1583
|
109 |
91 |
for (svp = SP; svp >= bottom; svp--) { |
1587
|
71 |
20 |
if(f) { |
1605
|
91 |
0 |
FREETMPS; |
1621
|
0 |
13 |
PUSHMARK(SP); |
1622
|
10 |
3 |
if(f) { |
1640
|
13 |
0 |
FREETMPS; |
1656
|
0 |
94 |
PUSHMARK(SP); |
1666
|
94 |
0 |
FREETMPS; |
1669
|
0 |
94 |
if(!SvROK(f)) |
1683
|
376 |
0 |
if(!f || !SvOK(f)) |
|
0 |
376 |
if(!f || !SvOK(f)) |
|
0 |
0 |
if(!f || !SvOK(f)) |
|
0 |
0 |
if(!f || !SvOK(f)) |
1685
|
0 |
376 |
if(!SvROK(f)) |
1691
|
0 |
376 |
PUSHMARK(SP); |
1692
|
0 |
376 |
EXTEND(SP, 1); |
1700
|
376 |
0 |
bool ret = SvTRUEx(POPs); |
|
0 |
376 |
bool ret = SvTRUEx(POPs); |
|
0 |
0 |
bool ret = SvTRUEx(POPs); |
|
135 |
241 |
bool ret = SvTRUEx(POPs); |
|
135 |
0 |
bool ret = SvTRUEx(POPs); |
|
0 |
135 |
bool ret = SvTRUEx(POPs); |
|
0 |
241 |
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); |
|
241 |
0 |
bool ret = SvTRUEx(POPs); |
|
241 |
0 |
bool ret = SvTRUEx(POPs); |
|
119 |
122 |
bool ret = SvTRUEx(POPs); |
|
0 |
119 |
bool ret = SvTRUEx(POPs); |
|
0 |
0 |
bool ret = SvTRUEx(POPs); |
|
122 |
119 |
bool ret = SvTRUEx(POPs); |
|
0 |
0 |
bool ret = SvTRUEx(POPs); |
1703
|
376 |
0 |
FREETMPS; |
1716
|
0 |
117 |
PUSHMARK(SP); |
1717
|
0 |
117 |
EXTEND(SP, 1); |
1734
|
0 |
119 |
PUSHMARK(SP); |
1735
|
0 |
119 |
EXTEND(SP, 2); |
1742
|
119 |
0 |
FREETMPS; |
1754
|
0 |
4 |
PUSHMARK(SP); |
1755
|
0 |
4 |
EXTEND(SP, 2); |
1762
|
4 |
0 |
FREETMPS; |
1774
|
0 |
119 |
PUSHMARK(SP); |
1775
|
0 |
119 |
EXTEND(SP, 2); |
1782
|
119 |
0 |
FREETMPS; |
1793
|
0 |
5 |
PUSHMARK(SP); |
1794
|
0 |
5 |
EXTEND(SP, 1); |
1798
|
4 |
1 |
call_method("AWAIT_WAIT", GIMME_V); |
1811
|
0 |
0 |
if(!state) { |
1812
|
0 |
0 |
if(!precreate_padix) |
1815
|
0 |
0 |
if(!(flags & FAA_MODHOOK_CREATE)) |
1821
|
0 |
0 |
if((flags & FAA_MODHOOK_CREATE) && !state->modhookdata) |
|
0 |
0 |
if((flags & FAA_MODHOOK_CREATE) && !state->modhookdata) |
1836
|
4 |
0 |
if(precreate_padix) { |
1854
|
83 |
23 |
if(state && state->returning_future) { |
|
83 |
0 |
if(state && state->returning_future) { |
1859
|
83 |
23 |
if(f && !SvROK(f)) { |
|
2 |
81 |
if(f && !SvROK(f)) { |
1862
|
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)) { |
1866
|
1 |
0 |
if(!CvANON(curcv)) |
1867
|
1 |
0 |
warn("Abandoned async sub %s::%s failed: %" SVf, |
|
0 |
1 |
warn("Abandoned async sub %s::%s failed: %" SVf, |
1868
|
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)); |
1870
|
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, |
1871
|
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)); |
1877
|
104 |
0 |
if(SvTRUE(ERRSV)) { |
|
104 |
0 |
if(SvTRUE(ERRSV)) { |
|
104 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
104 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
104 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
104 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
104 |
0 |
if(SvTRUE(ERRSV)) { |
|
101 |
3 |
if(SvTRUE(ERRSV)) { |
|
101 |
0 |
if(SvTRUE(ERRSV)) { |
|
101 |
0 |
if(SvTRUE(ERRSV)) { |
|
101 |
0 |
if(SvTRUE(ERRSV)) { |
|
91 |
10 |
if(SvTRUE(ERRSV)) { |
|
91 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
91 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
0 |
0 |
if(SvTRUE(ERRSV)) { |
|
10 |
91 |
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)) { |
1878
|
13 |
0 |
ret = future_fail(f, ERRSV); |
1892
|
104 |
106 |
while(SP > oldsp) |
1895
|
104 |
2 |
if(ret) { |
1896
|
0 |
104 |
EXTEND(SP, 1); |
1901
|
83 |
23 |
if(f) |
1925
|
8 |
252 |
AV *precancel = precreate_padix ? (AV *)PAD_SVl(precreate_padix + PRECREATE_CANCEL) : NULL; |
1929
|
154 |
106 |
if(state && state->awaiting_future && CATCH_GET) { |
|
126 |
28 |
if(state && state->awaiting_future && CATCH_GET) { |
|
11 |
115 |
if(state && state->awaiting_future && CATCH_GET) { |
1938
|
143 |
106 |
if(state && state->curcop) |
|
115 |
28 |
if(state && state->curcop) |
1948
|
143 |
106 |
if(state) { |
1949
|
140 |
3 |
if(!SvROK(state->returning_future) || future_is_cancelled(state->returning_future)) { |
|
5 |
135 |
if(!SvROK(state->returning_future) || future_is_cancelled(state->returning_future)) { |
1950
|
3 |
5 |
if(!SvROK(state->returning_future)) { |
1952
|
2 |
1 |
if(!CvANON(curcv)) |
1953
|
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)); |
1955
|
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))); |
1962
|
0 |
8 |
PUSHMARK(SP); |
1968
|
135 |
106 |
if(state && state->awaiting_future) { |
|
108 |
27 |
if(state && state->awaiting_future) { |
1981
|
108 |
108 |
while(sp > PL_stack_base + orig_height) |
1989
|
0 |
108 |
while(PL_markstack_ptr > PL_markstack + orig_height) |
1991
|
0 |
108 |
PUSHMARK(SP); |
1996
|
0 |
108 |
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)) { |
1998
|
0 |
0 |
SuspendHookFunc *hook = INT2PTR(SuspendHookFunc *, SvUV(*hookp)); |
1999
|
0 |
0 |
if(!state->modhookdata) |
2007
|
0 |
108 |
if(regs) |
2008
|
0 |
0 |
RUN_HOOKS_REV(pre_resume, curcv, state->modhookdata); |
|
0 |
0 |
RUN_HOOKS_REV(pre_resume, curcv, state->modhookdata); |
2012
|
0 |
108 |
if(regs) |
2013
|
0 |
0 |
RUN_HOOKS_FWD(post_resume, curcv, state->modhookdata); |
|
0 |
0 |
RUN_HOOKS_FWD(post_resume, curcv, state->modhookdata); |
2024
|
0 |
241 |
if(!sv_isobject(f)) |
2027
|
5 |
236 |
if(PL_op->op_flags & OPf_SPECIAL) { |
2032
|
117 |
119 |
if(future_is_ready(f)) { |
2035
|
110 |
7 |
if(state) |
2038
|
108 |
9 |
future_get_to_stack(f, GIMME_V); |
2047
|
94 |
25 |
if(!state) { |
2058
|
3 |
91 |
HV *premodhookdata = precreate_padix ? (HV *)PAD_SVl(precreate_padix + PRECREATE_MODHOOKDATA) : NULL; |
2059
|
3 |
91 |
if(premodhookdata) { |
2064
|
0 |
94 |
if(regs) { |
2065
|
0 |
0 |
if(!state->modhookdata) |
2067
|
0 |
0 |
RUN_HOOKS_FWD(post_cv_copy, runcv, curcv, state->modhookdata); |
|
0 |
0 |
RUN_HOOKS_FWD(post_cv_copy, runcv, curcv, state->modhookdata); |
2079
|
0 |
119 |
if(regs) |
2080
|
0 |
0 |
RUN_HOOKS_FWD(pre_suspend, curcv, state->modhookdata); |
|
0 |
0 |
RUN_HOOKS_FWD(pre_suspend, curcv, state->modhookdata); |
2085
|
0 |
119 |
if(regs) |
2086
|
0 |
0 |
RUN_HOOKS_FWD(post_suspend, curcv, state->modhookdata); |
|
0 |
0 |
RUN_HOOKS_FWD(post_suspend, curcv, state->modhookdata); |
2091
|
0 |
119 |
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)) { |
2093
|
0 |
0 |
SuspendHookFunc *hook = INT2PTR(SuspendHookFunc *, SvUV(*hookp)); |
2094
|
0 |
0 |
if(!state->modhookdata) |
2108
|
0 |
119 |
if(SvREFCNT(curcv) < 2) { |
2115
|
94 |
25 |
if(!state->returning_future) { |
2118
|
3 |
91 |
if(precancel) { |
2120
|
0 |
6 |
for(i = 0; i < av_count(precancel); i++) |
|
3 |
3 |
for(i = 0; i < av_count(precancel); i++) |
2132
|
94 |
25 |
if(defer_mortal_curcv) |
2135
|
0 |
119 |
PUSHMARK(SP); |
2139
|
94 |
25 |
if(!SvWEAKREF(state->returning_future)) |
2141
|
0 |
119 |
if(!SvROK(state->returning_future)) |
2147
|
0 |
119 |
if(!SvROK(state->returning_future)) |
2151
|
0 |
119 |
if(!SvROK(state->awaiting_future)) |
2166
|
1 |
3 |
if(state && state->returning_future) { |
|
1 |
0 |
if(state && state->returning_future) { |
2191
|
109 |
1759 |
if(OP_CLASS(op) == OA_COP) |
|
304 |
1564 |
if(OP_CLASS(op) == OA_COP) |
2196
|
13 |
4 |
if((op_first = cUNOPx(op)->op_first)->op_type != OP_ENTERITER) |
2204
|
13 |
0 |
kid = OpSIBLING(op_first); |
2206
|
2 |
11 |
if(!op_first->op_targ) |
2213
|
3 |
0 |
if((op_first = cUNOPx(op)->op_first)->op_type != OP_PUSHMARK) |
2216
|
3 |
0 |
kid = OpSIBLING(op_first); |
2217
|
1 |
2 |
check_optree(aTHX_ kid, |
2220
|
1 |
0 |
kid = OpSIBLING(kid); |
2224
|
100 |
9 |
if(op->op_ppaddr != &pp_await) |
2226
|
3 |
97 |
if(!forbid) |
2243
|
3 |
0 |
croak("await is not allowed inside %s at %s line %d.\n", |
2248
|
807 |
1056 |
if(op->op_flags & OPf_KIDS) { |
2249
|
793 |
14 |
if(!kid) |
2251
|
940 |
786 |
for(; kid; kid = OpSIBLING(kid)) |
|
1741 |
792 |
for(; kid; kid = OpSIBLING(kid)) |
2275
|
111 |
0 |
if(ctx->body) { |
2288
|
105 |
3 |
if(ctx->body->op_type == OP_LINESEQ) { |
2294
|
0 |
105 |
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 && |
2299
|
105 |
0 |
if(o->op_type == OP_NEXTSTATE && |
|
7 |
98 |
if(o->op_type == OP_NEXTSTATE && |
2300
|
105 |
0 |
OpSIBLING(o)->op_type == OP_ARGCHECK) { |
2304
|
7 |
0 |
o = OpSIBLING(OpSIBLING(o)); |
|
7 |
0 |
o = OpSIBLING(OpSIBLING(o)); |
|
7 |
0 |
o = OpSIBLING(OpSIBLING(o)); |
2305
|
7 |
0 |
OpMORESIB_set(OpSIBLING(argcheckop), NULL); |
|
7 |
0 |
OpMORESIB_set(OpSIBLING(argcheckop), NULL); |
2319
|
4 |
104 |
if(precreate_padix) { |
2336
|
7 |
101 |
if(argcheckop) { |
2340
|
14 |
0 |
while(OpSIBLING(o)) |
|
7 |
7 |
while(OpSIBLING(o)) |
2341
|
0 |
7 |
o = OpSIBLING(o); |
2353
|
1 |
107 |
if(CvLVALUE(ctx->cv)) |
2368
|
104 |
6 |
if(asynccvp && SvUV(*asynccvp) == PTR2UV(PL_compcv)) |
|
0 |
104 |
if(asynccvp && SvUV(*asynccvp) == PTR2UV(PL_compcv)) |
|
2 |
102 |
if(asynccvp && SvUV(*asynccvp) == PTR2UV(PL_compcv)) |
2370
|
3 |
5 |
else if(PL_compcv == PL_main_cv) |
2373
|
1 |
2 |
croak(CvEVAL(PL_compcv) ? |
|
0 |
1 |
croak(CvEVAL(PL_compcv) ? |
2382
|
5 |
101 |
if(PL_compcv == PL_main_cv) |
2403
|
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)) |
2404
|
0 |
0 |
croak(CvEVAL(PL_compcv) ? |
|
0 |
0 |
croak(CvEVAL(PL_compcv) ? |
2409
|
0 |
4 |
if(!hv_fetchs(GvHV(PL_hintgv), "Future::AsyncAwait/experimental(cancel)", 0)) { |
2454
|
0 |
0 |
if(hookfuncs_v1->flags) |
2527
|
0 |
45 |
if(svp = hv_fetchs(PL_modglobal, "Future::AsyncAwait/on_loaded", FALSE)) { |
2534
|
0 |
45 |
if(run_on_loaded) { |
2538
|
0 |
0 |
for(i = 0; i < AvFILL(run_on_loaded); i += 2) { |
|
0 |
0 |
for(i = 0; i < AvFILL(run_on_loaded); i += 2) { |
2539
|
0 |
0 |
void (*func)(pTHX_ void *data) = INT2PTR(void *, SvUV(svp[i ])); |
2540
|
0 |
0 |
void *data = INT2PTR(void *, SvUV(svp[i+1])); |