# HG changeset patch # User james # Date 1082385589 0 # Node ID 51e4a77ed447c7436b38a145edb8fee0e2d62479 # Parent a7b2d995287f58e93ea12a72616991441799ece3 [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. diff -r a7b2d995287f -r 51e4a77ed447 src/ChangeLog --- 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 + + * 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 * emacs.c (main_1): dumped_data_max_size and dumped_data_align_offset diff -r a7b2d995287f -r 51e4a77ed447 src/signal.c --- 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()