From 25edb08f894451484121d8925542806c6247561e Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Wed, 8 Mar 2000 13:55:23 +0000 Subject: [PATCH] (display_echo_area): Temporarily inhibit garbage collection. --- src/ChangeLog | 3 +++ src/xdisp.c | 12 ++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) 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; } -- 2.39.5