From a9e6720dff73c88dd8cf5f95326eef475e0af1e3 Mon Sep 17 00:00:00 2001 From: Kyryl Melekhin Date: Thu, 5 Aug 2021 23:20:44 +0000 Subject: [PATCH] plist trick only matters for split* --- pike.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pike.c b/pike.c index 4c2feb2..15ae6c5 100644 --- a/pike.c +++ b/pike.c @@ -464,23 +464,23 @@ if (--csub->ref == 0) { \ list[listidx++].pc = pc; \ goto rec_check##nn; \ } \ - if(plist[pc - insts] == gen) { \ - dec_check##nn: \ - decref(sub) \ - rec_check##nn: \ - if (i) { \ - pc = pcs[--i]; \ - sub = subs[i]; \ - goto rec##nn; \ - } \ - continue; \ - } \ - plist[pc - insts] = gen; \ switch(*pc) { \ case JMP: \ pc += 2 + pc[1]; \ goto rec##nn; \ case SPLIT: \ + if(plist[pc - insts] == gen) { \ + dec_check##nn: \ + decref(sub) \ + rec_check##nn: \ + if (i) { \ + pc = pcs[--i]; \ + sub = subs[i]; \ + goto rec##nn; \ + } \ + continue; \ + } \ + plist[pc - insts] = gen; \ subs[i] = sub; \ sub->ref++; \ pc += 2; \