diff options
author | Gerd Moellmann <gerd@gnu.org> | 2001-01-09 13:43:43 +0000 |
---|---|---|
committer | Gerd Moellmann <gerd@gnu.org> | 2001-01-09 13:43:43 +0000 |
commit | 98edb5ff5fd06795c03513550216d49219f50550 (patch) | |
tree | fcd7e071b1a9b50879722a6db42715ded7ae18fe | |
parent | fc46ca23fa8c204d7eb28b8f4457bbe135d1fa43 (diff) | |
download | emacs-98edb5ff5fd06795c03513550216d49219f50550.tar.gz |
(Fgarbage_collect): Use a record_unwind_protect to
ensure that pop_message is called.
-rw-r--r-- | src/alloc.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/alloc.c b/src/alloc.c index eba9d867c8c..8685496a515 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -1,5 +1,5 @@ /* Storage allocation and gc for GNU Emacs Lisp interpreter. - Copyright (C) 1985, 86, 88, 93, 94, 95, 97, 98, 1999, 2000 + Copyright (C) 1985, 86, 88, 93, 94, 95, 97, 98, 1999, 2000, 2001 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -3702,6 +3702,7 @@ Garbage collection happens automatically if you cons more than\n\ register int i; int message_p; Lisp_Object total[8]; + int count = BINDING_STACK_SIZE (); /* In case user calls debug_print during GC, don't let that cause a recursive GC. */ @@ -3709,6 +3710,7 @@ Garbage collection happens automatically if you cons more than\n\ /* Save what's currently displayed in the echo area. */ message_p = push_message (); + record_unwind_protect (push_message_unwind, Qnil); /* Save a copy of the contents of the stack, for debugging. */ #if MAX_SAVE_STACK > 0 @@ -3913,7 +3915,7 @@ Garbage collection happens automatically if you cons more than\n\ message1_nolog ("Garbage collecting...done"); } - pop_message (); + unbind_to (count, Qnil); total[0] = Fcons (make_number (total_conses), make_number (total_free_conses)); |