diff --git a/Coro-6.49/Coro/State.xs b/Coro-6.49/Coro/State.xs index 6d631bd..c2cbe7b 100644 --- a/Coro-6.49/Coro/State.xs +++ b/Coro-6.49/Coro/State.xs @@ -1395,7 +1395,18 @@ runops_trace (pTHX) PUSHMARK (SP); PUSHs (&PL_sv_yes); PUSHs (fullname); - PUSHs (CxHASARGS (cx) ? sv_2mortal (newRV_inc ((SV *)cx->blk_sub.argarray)) : &PL_sv_undef); + { + AV *aa; +# if PERL_VERSION_ATLEAST(5,23,8) + aa = ((AV*)(AvARRAY(MUTABLE_AV( + PadlistARRAY(CvPADLIST(cx->blk_sub.cv))[ + CvDEPTH(cx->blk_sub.cv)]))[0])); +#else + aa = cx->blk_sub.argarray; +#endif + + PUSHs (CxHASARGS (cx) ? sv_2mortal (newRV_inc ((SV *)aa)) : &PL_sv_undef); + } PUTBACK; cb = hv_fetch ((HV *)SvRV (coro_current), "_trace_sub_cb", sizeof ("_trace_sub_cb") - 1, 0); if (cb) call_sv (*cb, G_KEEPERR | G_EVAL | G_VOID | G_DISCARD);