diff options
Diffstat (limited to 'dev-perl/Coro/files/6.511.0-argarray.patch')
-rw-r--r-- | dev-perl/Coro/files/6.511.0-argarray.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/dev-perl/Coro/files/6.511.0-argarray.patch b/dev-perl/Coro/files/6.511.0-argarray.patch new file mode 100644 index 00000000000..243494448ad --- /dev/null +++ b/dev-perl/Coro/files/6.511.0-argarray.patch @@ -0,0 +1,42 @@ +From 38fe74765a4cbf1003cc2011559bf83b05b10e46 Mon Sep 17 00:00:00 2001 +From: David Mitchell <davem@iabyn.com> +Date: Tue, 3 May 2016 22:25:48 +0100 +Subject: [PATCH 3/5] Coro: handle argarray removal in 5.23.8 + +--- + Coro/State.xs | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/Coro/State.xs b/Coro/State.xs +index 93c2c5b..28264c5 100644 +--- a/Coro/State.xs ++++ b/Coro/State.xs +@@ -1415,6 +1415,7 @@ runops_trace (pTHX) + if (CxTYPE (cx) == CXt_SUB && oldcxix < cxstack_ix) + { + dSP; ++ AV *argarray; + GV *gv = CvGV (cx->blk_sub.cv); + SV *fullname = sv_2mortal (newSV (0)); + +@@ -1428,7 +1429,16 @@ 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); ++ argarray = ++# if PERL_VERSION_ATLEAST(5,23,8) ++ ((AV*)(AvARRAY(MUTABLE_AV( ++ PadlistARRAY(CvPADLIST(cx->blk_sub.cv))[ ++ CvDEPTH(cx->blk_sub.cv)]))[0])); ++#else ++ cx->blk_sub.argarray; ++#endif ++ ++ PUSHs (CxHASARGS (cx) ? sv_2mortal (newRV_inc ((SV *)argarray)) : &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); +-- +2.4.11 + |