From 20d362538021e154095f4b64f1b3505d3912fffd Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Thu, 11 Sep 2014 17:02:09 +0400 Subject: [PATCH] * lread.c (readevalloop_eager_expand_eval): Add GCPRO and fix bootstrap broken if GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE. --- src/ChangeLog | 3 +++ src/lread.c | 8 +++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 05ec1514f42..202b5f22e9d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -8,6 +8,9 @@ (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6, GCPRO7): Minor restyle. If DEBUG_GCPRO, initialize extra fields. + * lread.c (readevalloop_eager_expand_eval): Add GCPRO and fix + bootstrap broken if GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE. + 2014-09-11 Paul Eggert Pacify --enable-gcc-warnings when no window system is used. diff --git a/src/lread.c b/src/lread.c index 21046774cb8..f32b60ad588 100644 --- a/src/lread.c +++ b/src/lread.c @@ -1782,15 +1782,17 @@ readevalloop_eager_expand_eval (Lisp_Object val, Lisp_Object macroexpand) val = call2 (macroexpand, val, Qnil); if (EQ (CAR_SAFE (val), Qprogn)) { + struct gcpro gcpro1; Lisp_Object subforms = XCDR (val); - val = Qnil; - for (; CONSP (subforms); subforms = XCDR (subforms)) + + GCPRO1 (subforms); + for (val = Qnil; CONSP (subforms); subforms = XCDR (subforms)) val = readevalloop_eager_expand_eval (XCAR (subforms), macroexpand); + UNGCPRO; } else val = eval_sub (call2 (macroexpand, val, Qt)); - return val; } -- 2.39.5