back out previous change (it breaks PERL_OBJECT)
[p5sagit/p5-mst-13.2.git] / util.c
diff --git a/util.c b/util.c
index f1cd3bc..2fa7740 100644 (file)
--- 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;