# HG changeset patch # User Gerd Moellmann # Date 952523668 0 # Node ID 91d9cd696b8088e383964d474b9851259240910a # Parent 425a4ebe8cda344fc1fb8120044b02870d7a3f69 (display_echo_area): Temporarily inhibit garbage collection. diff -r 425a4ebe8cda -r 91d9cd696b80 src/xdisp.c --- a/src/xdisp.c Tue Mar 07 23:32:47 2000 +0000 +++ b/src/xdisp.c Wed Mar 08 13:54:28 2000 +0000 @@ -5529,7 +5529,14 @@ 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 @@ if (no_message_p) echo_area_buffer[i] = Qnil; - + + unbind_to (count, Qnil); return window_height_changed_p; }