emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/eval.c


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/src/eval.c
Date: Sat, 11 Mar 2006 15:19:32 +0000

Index: emacs/src/eval.c
diff -u emacs/src/eval.c:1.263 emacs/src/eval.c:1.264
--- emacs/src/eval.c:1.263      Sun Feb 26 18:08:02 2006
+++ emacs/src/eval.c    Sat Mar 11 15:19:31 2006
@@ -1259,6 +1259,10 @@
     }
   while (! last_time);
 
+  /* If x_catch_errors was done, turn it off now.
+     (First we give unbind_to a chance to do that.)  */
+  x_fully_uncatch_errors ();
+
   byte_stack_list = catch->byte_stack;
   gcprolist = catch->gcpro;
 #ifdef DEBUG_GCPRO
@@ -1435,10 +1439,10 @@
   struct catchtag c;
   struct handler h;
 
-#if 0 /* We now handle interrupt_input_blocked properly.
-        What we still do not handle is exiting a signal handler.  */
+  /* Since Fsignal will close off all calls to x_catch_errors,
+     we will get the wrong results if some are not closed now.  */
+  if (x_catching_errors ())
     abort ();
-#endif
 
   c.tag = Qnil;
   c.val = Qnil;
@@ -1481,6 +1485,11 @@
   struct catchtag c;
   struct handler h;
 
+  /* Since Fsignal will close off all calls to x_catch_errors,
+     we will get the wrong results if some are not closed now.  */
+  if (x_catching_errors ())
+    abort ();
+
   c.tag = Qnil;
   c.val = Qnil;
   c.backlist = backtrace_list;
@@ -1525,6 +1534,11 @@
   struct catchtag c;
   struct handler h;
 
+  /* Since Fsignal will close off all calls to x_catch_errors,
+     we will get the wrong results if some are not closed now.  */
+  if (x_catching_errors ())
+    abort ();
+
   c.tag = Qnil;
   c.val = Qnil;
   c.backlist = backtrace_list;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]