summaryrefslogtreecommitdiff
path: root/pp_ctl.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1999-10-14 02:21:31 +0000
committerGurusamy Sarathy <gsar@cpan.org>1999-10-14 02:21:31 +0000
commitdb36c5a16ec06ab929abf72b6174b106e97b8088 (patch)
tree80241b0e63078300a14a8752ae093dae0c8b04c9 /pp_ctl.c
parent501fbaef3175dd8502946b025f50c421a76a0318 (diff)
downloadperl-db36c5a16ec06ab929abf72b6174b106e97b8088.tar.gz
avoid inefficiency in change#3386 (every longjmp() was followed
by an avoidable call to setjmp()) p4raw-link: @3386 on //depot/perl: 312caa8e97f1c7ee342a9895c2f0e749625b4929 p4raw-id: //depot/perl@4372
Diffstat (limited to 'pp_ctl.c')
-rw-r--r--pp_ctl.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/pp_ctl.c b/pp_ctl.c
index 3bf4f1d169..5f3ca18667 100644
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -2436,13 +2436,14 @@ S_docatch(pTHX_ OP *o)
dTHR;
int ret;
OP *oldop = PL_op;
+ dJMPENV;
#ifdef DEBUGGING
assert(CATCH_GET == TRUE);
#endif
PL_op = o;
redo_body:
- CALLPROTECT(aTHX_ &ret, MEMBER_TO_FPTR(S_docatch_body));
+ CALLPROTECT(aTHX_ pcur_env, &ret, MEMBER_TO_FPTR(S_docatch_body));
switch (ret) {
case 0:
break;