From: Gerd Moellmann Date: Wed, 8 Mar 2000 13:55:23 +0000 (+0000) Subject: (display_echo_area): Temporarily inhibit garbage collection. X-Git-Tag: emacs-pretest-21.0.90~4727 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=25edb08f894451484121d8925542806c6247561e;p=emacs.git (display_echo_area): Temporarily inhibit garbage collection. --- diff --git a/src/ChangeLog b/src/ChangeLog index fedfdc04b10..1db6f3d7626 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2000-03-08 Gerd Moellmann + * xdisp.c (display_echo_area): Temporarily inhibit garbage + collection. + * xfns.c: Remove obsolete code in #if 0. (Fx_focus_frame): New function. diff --git a/src/xdisp.c b/src/xdisp.c index 7ed073029ed..33a87327850 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -5529,7 +5529,14 @@ static int display_echo_area (w) struct window *w; { - int i, no_message_p, window_height_changed_p; + int i, no_message_p, window_height_changed_p, count; + + /* Temporarily disable garbage collections while displaying the echo + area. This is done because a GC can print a message itself. + That message would modify the echo area buffer's contents while a + redisplay of the buffer is going on, and seriously confuse + redisplay. */ + count = inhibit_garbage_collection (); /* If there is no message, we must call display_echo_area_1 nevertheless because it resizes the window. But we will have to @@ -5544,7 +5551,8 @@ display_echo_area (w) if (no_message_p) echo_area_buffer[i] = Qnil; - + + unbind_to (count, Qnil); return window_height_changed_p; }