From 2254b6c09cff8f3a83684fd159289d0e305b0e7d Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 14 Jul 2015 06:59:26 -0700 Subject: [PATCH] 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. --- src/alloc.c | 2 -- src/eval.c | 2 ++ 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) void init_alloc (void) { - gcprolist = 0; - byte_stack_list = 0; #if GC_MARK_STACK #if !defined GC_SAVE_REGISTERS_ON_STACK && !defined GC_SETJMP_WORKS 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; void init_eval (void) { + gcprolist = 0; + byte_stack_list = 0; specpdl_ptr = specpdl; { /* Put a dummy catcher at top-level so that handlerlist is never NULL. This is important since handlerlist->nextfree holds the freelist -- 2.39.5