diff options
author | markm <markm@FreeBSD.org> | 2000-06-25 11:04:01 +0000 |
---|---|---|
committer | markm <markm@FreeBSD.org> | 2000-06-25 11:04:01 +0000 |
commit | 2618fad5bbb2d0182eb31ed805c41b543c513940 (patch) | |
tree | 52ba93338b13aefd02a0055304a9eccfa0e049f5 /contrib/perl5/cc_runtime.h | |
parent | 77644ee620b6a79cf8c538abaf7cd301a875528d (diff) | |
download | FreeBSD-src-2618fad5bbb2d0182eb31ed805c41b543c513940.zip FreeBSD-src-2618fad5bbb2d0182eb31ed805c41b543c513940.tar.gz |
Vendor import of Perl 5.006
Diffstat (limited to 'contrib/perl5/cc_runtime.h')
-rw-r--r-- | contrib/perl5/cc_runtime.h | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/contrib/perl5/cc_runtime.h b/contrib/perl5/cc_runtime.h index 9a01ff8..dbc7475 100644 --- a/contrib/perl5/cc_runtime.h +++ b/contrib/perl5/cc_runtime.h @@ -1,4 +1,5 @@ -#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; \ @@ -43,7 +44,7 @@ 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; \ @@ -52,20 +53,23 @@ 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; \ SPAGAIN; \ } while (0) -#define PP_ENTERTRY(jmpbuf,label) do { \ - dJMPENV; \ - int ret; \ - JMPENV_PUSH(ret); \ - switch (ret) { \ - case 1: JMPENV_POP; JMPENV_JUMP(1); \ - case 2: JMPENV_POP; JMPENV_JUMP(2); \ - case 3: JMPENV_POP; SPAGAIN; goto label;\ - } \ - } while (0) + +#define PP_ENTERTRY(jmpbuf,label) \ + STMT_START { \ + int ret; \ + JMPENV_PUSH_ENV(jmpbuf,ret); \ + switch (ret) { \ + case 1: JMPENV_POP_ENV(jmpbuf); JMPENV_JUMP(1);\ + case 2: JMPENV_POP_ENV(jmpbuf); JMPENV_JUMP(2);\ + case 3: JMPENV_POP_ENV(jmpbuf); SPAGAIN; goto label;\ + } \ + } STMT_END +#define PP_LEAVETRY \ + STMT_START{ PL_top_env=PL_top_env->je_prev; }STMT_END |