summaryrefslogtreecommitdiff
path: root/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'util.c')
-rw-r--r--util.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/util.c b/util.c
index f1cd3bc8f3..2fa77408a9 100644
--- a/util.c
+++ b/util.c
@@ -1307,7 +1307,7 @@ die(const char* pat, ...)
thr, restartop, was_in_eval, top_env));
#endif /* USE_THREADS */
if ((!restartop && was_in_eval) || top_env->je_prev)
- JMPENV_JUMP(JMP_EXCEPTION);
+ JMPENV_JUMP(3);
return restartop;
}
@@ -1355,7 +1355,7 @@ croak(const char* pat, ...)
}
if (in_eval) {
restartop = die_where(message);
- JMPENV_JUMP(JMP_EXCEPTION);
+ JMPENV_JUMP(3);
}
PerlIO_puts(PerlIO_stderr(),message);
(void)PerlIO_flush(PerlIO_stderr());
@@ -2759,7 +2759,10 @@ new_struct_thread(struct perl_thread *t)
See comments in scope.h
Initialize top entry (as in perl.c for main thread)
*/
- JMPENV_TOPINIT(start_env);
+ start_env.je_prev = NULL;
+ start_env.je_ret = -1;
+ start_env.je_mustcatch = TRUE;
+ top_env = &start_env;
in_eval = FALSE;
restartop = 0;