comparison src/alloc.c @ 25343:fe92158a9e83

(Fgarbage_collect): Use push_message, restore_message, pop_message.
author Gerd Moellmann <gerd@gnu.org>
date Sat, 21 Aug 1999 19:28:42 +0000
parents 11070f3c5b59
children 823e14641544
comparison
equal deleted inserted replaced
25342:99d49ec31b8a 25343:fe92158a9e83
1744 register struct specbinding *bind; 1744 register struct specbinding *bind;
1745 struct catchtag *catch; 1745 struct catchtag *catch;
1746 struct handler *handler; 1746 struct handler *handler;
1747 register struct backtrace *backlist; 1747 register struct backtrace *backlist;
1748 register Lisp_Object tem; 1748 register Lisp_Object tem;
1749 char *omessage = echo_area_glyphs;
1750 Lisp_Object omessage_string = echo_area_message;
1751 int omessage_length = echo_area_glyphs_length;
1752 int oldmultibyte = message_enable_multibyte;
1753 char stack_top_variable; 1749 char stack_top_variable;
1754 register int i; 1750 register int i;
1755 struct gcpro gcpro1; 1751 int message_p;
1756 1752
1757 /* In case user calls debug_print during GC, 1753 /* In case user calls debug_print during GC,
1758 don't let that cause a recursive GC. */ 1754 don't let that cause a recursive GC. */
1759 consing_since_gc = 0; 1755 consing_since_gc = 0;
1760 1756
1761 GCPRO1 (omessage_string); 1757 /* Save what's currently displayed in the echo area. */
1758 message_p = push_message ();
1762 1759
1763 /* Save a copy of the contents of the stack, for debugging. */ 1760 /* Save a copy of the contents of the stack, for debugging. */
1764 #if MAX_SAVE_STACK > 0 1761 #if MAX_SAVE_STACK > 0
1765 if (NILP (Vpurify_flag)) 1762 if (NILP (Vpurify_flag))
1766 { 1763 {
1940 if (gc_cons_threshold < 10000) 1937 if (gc_cons_threshold < 10000)
1941 gc_cons_threshold = 10000; 1938 gc_cons_threshold = 10000;
1942 1939
1943 if (garbage_collection_messages) 1940 if (garbage_collection_messages)
1944 { 1941 {
1945 if (STRINGP (omessage_string)) 1942 if (message_p || minibuf_level > 0)
1946 message3_nolog (omessage_string, omessage_length, oldmultibyte); 1943 restore_message ();
1947 if (omessage || minibuf_level > 0)
1948 message2_nolog (omessage, omessage_length, oldmultibyte);
1949 else 1944 else
1950 message1_nolog ("Garbage collecting...done"); 1945 message1_nolog ("Garbage collecting...done");
1951 } 1946 }
1952 1947
1953 UNGCPRO; 1948 pop_message ();
1949
1954 return Fcons (Fcons (make_number (total_conses), 1950 return Fcons (Fcons (make_number (total_conses),
1955 make_number (total_free_conses)), 1951 make_number (total_free_conses)),
1956 Fcons (Fcons (make_number (total_symbols), 1952 Fcons (Fcons (make_number (total_symbols),
1957 make_number (total_free_symbols)), 1953 make_number (total_free_symbols)),
1958 Fcons (Fcons (make_number (total_markers), 1954 Fcons (Fcons (make_number (total_markers),