Mercurial > emacs
changeset 46305:fed6b815dbeb
(Vmemory_full): New variable.
(Vmemory_signal_data): Renamed from memory_signal_data. Uses changed.
(syms_of_alloc): Defvar them.
(memory_full, buffer_memory_full): Set Vmemory_full.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 11 Jul 2002 17:44:22 +0000 |
parents | 76246741e5c2 |
children | 66cce4969490 |
files | src/alloc.c |
diffstat | 1 files changed, 20 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/alloc.c Thu Jul 11 17:40:48 2002 +0000 +++ b/src/alloc.c Thu Jul 11 17:44:22 2002 +0000 @@ -181,6 +181,10 @@ Lisp_Object Vpurify_flag; +/* Non-nil means we are handling a memory-full error. */ + +Lisp_Object Vmemory_full; + #ifndef HAVE_SHM /* Force it into data space! */ @@ -224,7 +228,7 @@ /* Pre-computed signal argument for use when memory is exhausted. */ -Lisp_Object memory_signal_data; +Lisp_Object Vmemory_signal_data; /* Maximum amount of C stack to save when a GC happens. */ @@ -469,6 +473,8 @@ void memory_full () { + Vmemory_full = Qt; + #ifndef SYSTEM_MALLOC bytes_used_when_full = BYTES_USED; #endif @@ -483,7 +489,7 @@ /* This used to call error, but if we've run out of memory, we could get infinite recursion trying to build the string. */ while (1) - Fsignal (Qnil, memory_signal_data); + Fsignal (Qnil, Vmemory_signal_data); } @@ -503,10 +509,12 @@ memory_full (); #endif + Vmemory_full = Qt; + /* This used to call error, but if we've run out of memory, we could get infinite recursion trying to build the string. */ while (1) - Fsignal (Qerror, memory_signal_data); + Fsignal (Qnil, Vmemory_signal_data); } @@ -5541,11 +5549,17 @@ Qpost_gc_hook = intern ("post-gc-hook"); staticpro (&Qpost_gc_hook); + DEFVAR_LISP ("memory-signal-data", &Vmemory_signal_data, + doc: /* Precomputed `signal' argument for memory-full error. */); /* We build this in advance because if we wait until we need it, we might not be able to allocate the memory to hold it. */ - memory_signal_data - = Fcons (Qerror, Fcons (build_string ("Memory exhausted--use M-x save-some-buffers RET"), Qnil)); - staticpro (&memory_signal_data); + Vmemory_signal_data + = list2 (Qerror, + build_string ("Memory exhausted--use M-x save-some-buffers then exit and restart Emacs")); + + DEFVAR_LISP ("memory-full", &Vmemory_full, + doc: /* Non-nil means we are handling a memory-full error. */); + Vmemory_full = Qnil; staticpro (&Qgc_cons_threshold); Qgc_cons_threshold = intern ("gc-cons-threshold");