]> git.eshelyaron.com Git - emacs.git/commitdiff
(Fgarbage_collect): Use push_message, restore_message,
authorGerd Moellmann <gerd@gnu.org>
Sat, 21 Aug 1999 19:28:42 +0000 (19:28 +0000)
committerGerd Moellmann <gerd@gnu.org>
Sat, 21 Aug 1999 19:28:42 +0000 (19:28 +0000)
pop_message.

src/alloc.c

index c0da91bf61b4536b73241514db00eef395c01834..978c4240a2827bd5ec2e26721dd16b1f68d4aa04 100644 (file)
@@ -1746,19 +1746,16 @@ Garbage collection happens automatically if you cons more than\n\
   struct handler *handler;
   register struct backtrace *backlist;
   register Lisp_Object tem;
-  char *omessage = echo_area_glyphs;
-  Lisp_Object omessage_string = echo_area_message;
-  int omessage_length = echo_area_glyphs_length;
-  int oldmultibyte = message_enable_multibyte;
   char stack_top_variable;
   register int i;
-  struct gcpro gcpro1;
+  int message_p;
 
   /* In case user calls debug_print during GC,
      don't let that cause a recursive GC.  */
   consing_since_gc = 0;
 
-  GCPRO1 (omessage_string);
+  /* Save what's currently displayed in the echo area.  */
+  message_p = push_message ();
 
   /* Save a copy of the contents of the stack, for debugging.  */
 #if MAX_SAVE_STACK > 0
@@ -1942,15 +1939,14 @@ Garbage collection happens automatically if you cons more than\n\
 
   if (garbage_collection_messages)
     {
-      if (STRINGP (omessage_string))
-       message3_nolog (omessage_string, omessage_length, oldmultibyte);
-      if (omessage || minibuf_level > 0)
-       message2_nolog (omessage, omessage_length, oldmultibyte);
+      if (message_p || minibuf_level > 0)
+       restore_message ();
       else
        message1_nolog ("Garbage collecting...done");
     }
 
-  UNGCPRO;
+  pop_message ();
+  
   return Fcons (Fcons (make_number (total_conses),
                       make_number (total_free_conses)),
                Fcons (Fcons (make_number (total_symbols),