X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/3f774658ecc4b04691265c9db31d70a4a611b290..a9201296457bbaf65a658e2c85755eee4c36439a:/cc_runtime.h diff --git a/cc_runtime.h b/cc_runtime.h index b1fc5b5..90826df 100644 --- a/cc_runtime.h +++ b/cc_runtime.h @@ -1,6 +1,6 @@ /* cc_runtime.h * - * Copyright (c) 1998-2002, Larry Wall + * Copyright (C) 1999, 2000, 2001, 2004, 2006, 2008 by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -54,8 +54,8 @@ switch (ret) { \ case 0: \ PL_op = ppaddr(aTHX); \ - PL_retstack[PL_retstack_ix - 1] = Nullop; \ - if (PL_op != nxt) CALLRUNOPS(); \ + cxstack[cxstack_ix].blk_eval.retop = Nullop; \ + if (PL_op != nxt) CALLRUNOPS(aTHX); \ JMPENV_POP; \ break; \ case 1: JMPENV_POP; JMPENV_JUMP(1); \ @@ -69,16 +69,17 @@ SPAGAIN; \ } while (0) - -#define PP_ENTERTRY(jmpbuf,label) \ +#define PP_ENTERTRY(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;\ - } \ + 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;\ + } \ } STMT_END + #define PP_LEAVETRY \ STMT_START{ PL_top_env=PL_top_env->je_prev; }STMT_END