X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Fautovivification.git;a=blobdiff_plain;f=autovivification.xs;h=7fc4a4e8241656de3dcfd310e2cdb4df03fa5132;hp=a6bf2af1c79124370f9a643ee8800b810ea5a81e;hb=6b60db564a2cc9f93f52ee22535da1b73a92eb83;hpb=d0a8557c5051ae08a40440d93d5f17575b75cfc4 diff --git a/autovivification.xs b/autovivification.xs index a6bf2af..7fc4a4e 100644 --- a/autovivification.xs +++ b/autovivification.xs @@ -980,11 +980,22 @@ STATIC void a_peep_rec(pTHX_ OP *o, ptable *seen) { const a_op_info *oi = NULL; UV flags = 0; +#if !A_HAS_RPEEP if (ptable_fetch(seen, o)) break; ptable_seen_store(seen, o, o); +#endif switch (o->op_type) { +#if A_HAS_RPEEP + case OP_NEXTSTATE: + case OP_DBSTATE: + case OP_STUB: + if (ptable_fetch(seen, o)) + return; + ptable_seen_store(seen, o, o); + break; +#endif case OP_PADSV: if (o->op_ppaddr != a_pp_deref) { oi = a_map_fetch(o);