plist trick only matters for split*

This commit is contained in:
Kyryl Melekhin
2021-08-05 23:20:44 +00:00
parent 6bd24252e1
commit a9e6720dff

10
pike.c
View File

@@ -464,6 +464,11 @@ if (--csub->ref == 0) { \
list[listidx++].pc = pc; \ list[listidx++].pc = pc; \
goto rec_check##nn; \ goto rec_check##nn; \
} \ } \
switch(*pc) { \
case JMP: \
pc += 2 + pc[1]; \
goto rec##nn; \
case SPLIT: \
if(plist[pc - insts] == gen) { \ if(plist[pc - insts] == gen) { \
dec_check##nn: \ dec_check##nn: \
decref(sub) \ decref(sub) \
@@ -476,11 +481,6 @@ if (--csub->ref == 0) { \
continue; \ continue; \
} \ } \
plist[pc - insts] = gen; \ plist[pc - insts] = gen; \
switch(*pc) { \
case JMP: \
pc += 2 + pc[1]; \
goto rec##nn; \
case SPLIT: \
subs[i] = sub; \ subs[i] = sub; \
sub->ref++; \ sub->ref++; \
pc += 2; \ pc += 2; \