-#define DOOP(ppname) PUTBACK; PL_op = ppname(ARGS); SPAGAIN
+#define DOOP(ppname) PUTBACK; PL_op = ppname(aTHX); SPAGAIN
+#define CCPP(s) OP * s(pTHX)
#define PP_LIST(g) do { \
dMARK; \
JMPENV_PUSH(ret); \
switch (ret) { \
case 0: \
- PL_op = ppaddr(ARGS); \
+ PL_op = ppaddr(aTHX); \
PL_retstack[PL_retstack_ix - 1] = Nullop; \
if (PL_op != nxt) CALLRUNOPS(); \
JMPENV_POP; \
case 2: JMPENV_POP; JMPENV_JUMP(2); \
case 3: \
JMPENV_POP; \
- if (PL_restartop != nxt) \
+ if (PL_restartop && PL_restartop != nxt) \
JMPENV_JUMP(3); \
} \
PL_op = nxt; \