plist trick only matters for split*
This commit is contained in:
10
pike.c
10
pike.c
@@ -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; \
|
||||||
|
|||||||
Reference in New Issue
Block a user