aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2015-07-14 06:59:26 -0700
committerPaul Eggert2015-07-14 07:03:06 -0700
commit2254b6c09cff8f3a83684fd159289d0e305b0e7d (patch)
treee39495bc5764a69ea284ec98aa41482567050946 /src
parent6a7e718916d00dbacaa765669f389b86f33075f5 (diff)
downloademacs-2254b6c09cff8f3a83684fd159289d0e305b0e7d.tar.gz
emacs-2254b6c09cff8f3a83684fd159289d0e305b0e7d.zip
Clear gcprolist etc. after stack overflow
After stack overflow, command_loop calls init_eval, and this needs to clear gcprolist and byte_stack_list (Bug#20996). * src/alloc.c (init_alloc): Move gcprolist and byte_stack_list initialization from here ... * src/eval.c (init_eval): ... to here.
Diffstat (limited to 'src')
-rw-r--r--src/alloc.c2
-rw-r--r--src/eval.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/alloc.c b/src/alloc.c
index c9bdcc216c7..9ac3ad84131 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -7255,8 +7255,6 @@ init_alloc_once (void)
7255void 7255void
7256init_alloc (void) 7256init_alloc (void)
7257{ 7257{
7258 gcprolist = 0;
7259 byte_stack_list = 0;
7260#if GC_MARK_STACK 7258#if GC_MARK_STACK
7261#if !defined GC_SAVE_REGISTERS_ON_STACK && !defined GC_SETJMP_WORKS 7259#if !defined GC_SAVE_REGISTERS_ON_STACK && !defined GC_SETJMP_WORKS
7262 setjmp_tested_p = longjmps_done = 0; 7260 setjmp_tested_p = longjmps_done = 0;
diff --git a/src/eval.c b/src/eval.c
index 46550955d44..4f7f42f1ebe 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -220,6 +220,8 @@ static struct handler handlerlist_sentinel;
220void 220void
221init_eval (void) 221init_eval (void)
222{ 222{
223 gcprolist = 0;
224 byte_stack_list = 0;
223 specpdl_ptr = specpdl; 225 specpdl_ptr = specpdl;
224 { /* Put a dummy catcher at top-level so that handlerlist is never NULL. 226 { /* Put a dummy catcher at top-level so that handlerlist is never NULL.
225 This is important since handlerlist->nextfree holds the freelist 227 This is important since handlerlist->nextfree holds the freelist