changeset 2034:51e4a77ed447

[xemacs-hg @ 2004-04-19 14:39:45 by james] Move QUIT checking down one level to catch QUITP and avoid catching uses of QUIT that have already disabled checking.
author james
date Mon, 19 Apr 2004 14:39:49 +0000
parents a7b2d995287f
children aaa6e4c4e653
files src/ChangeLog src/signal.c
diffstat 2 files changed, 14 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Mon Apr 19 11:26:04 2004 +0000
+++ b/src/ChangeLog	Mon Apr 19 14:39:49 2004 +0000
@@ -1,3 +1,9 @@
+2004-04-15  Jerry James  <james@xemacs.org>
+
+	* signal.c (check_what_happened): Remove check for proper
+	redisplay wrapping.
+	* signal.c (check_quit): Put the check here instead.
+
 2004-04-18  Stephen J. Turnbull  <stephen@xemacs.org>
 
 	* emacs.c (main_1): dumped_data_max_size and dumped_data_align_offset
--- a/src/signal.c	Mon Apr 19 11:26:04 2004 +0000
+++ b/src/signal.c	Mon Apr 19 14:39:49 2004 +0000
@@ -436,10 +436,6 @@
      code. */
 
 #ifdef ERROR_CHECK_TRAPPING_PROBLEMS
-  assert_with_message
-    (proper_redisplay_wrapping_in_place (),
-     "QUIT called from within redisplay without being properly wrapped");
-
   /* When in a critical section, don't reset something_happened, so that
      every single QUIT will verify proper wrapping. (something_happened
      was set by enter_redisplay_critical_section() and will be reset
@@ -982,6 +978,14 @@
 
   if (quit_check_signal_happened)
     {
+#ifdef ERROR_CHECK_TRAPPING_PROBLEMS
+      /* Since the code below can call Lisp, make sure that proper wrapping is
+	 in place during redisplay. */
+      assert_with_message
+	(proper_redisplay_wrapping_in_place (),
+	 "QUIT called from within redisplay without being properly wrapped");
+#endif
+
       /* Since arbitrary Lisp code may be executed (e.g. through a menu
          filter, see backtrace directly above), GC might happen,
          which would majorly fuck a lot of things, e.g. re_match()