X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=autovivification.xs;h=852723b0e88abcb252ac4ef8e034d46aa047a4e3;hb=1e77153b3fb4b438a86b8c8a0b6c37ad91f05823;hp=37b6d6509d06b1f3cc2df9462509534114b59a81;hpb=398244e85bffee464a5bf0b54a22229802033bc4;p=perl%2Fmodules%2Fautovivification.git diff --git a/autovivification.xs b/autovivification.xs index 37b6d65..852723b 100644 --- a/autovivification.xs +++ b/autovivification.xs @@ -29,8 +29,12 @@ # define A_HAS_RPEEP A_HAS_PERL(5, 13, 5) #endif -#ifndef OP_SIBLING -# define OP_SIBLING(O) ((O)->op_sibling) +#ifndef OpSIBLING +# ifdef OP_SIBLING +# define OpSIBLING(O) OP_SIBLING(O) +# else +# define OpSIBLING(O) ((O)->op_sibling) +# endif #endif /* ... Thread safety and multiplicity ...................................... */ @@ -933,7 +937,7 @@ STATIC OP *a_ck_xslice(pTHX_ OP *o) { case OP_HSLICE: old_ck = a_old_ck_hslice; if (hint & A_HINT_DO) - a_recheck_rv2xv(OP_SIBLING(cUNOPo->op_first), OP_RV2HV, a_pp_rv2hv); + a_recheck_rv2xv(OpSIBLING(cUNOPo->op_first), OP_RV2HV, a_pp_rv2hv); break; } o = old_ck(aTHX_ o); @@ -1024,6 +1028,7 @@ STATIC void a_peep_rec(pTHX_ OP *o, ptable *seen) { case OP_NEXTSTATE: case OP_DBSTATE: case OP_STUB: + case OP_UNSTACK: if (ptable_fetch(seen, o)) return; ptable_seen_store(seen, o, o);