From: Paul Eggert Date: Thu, 14 Feb 2013 22:08:38 +0000 (-0800) Subject: Backport GCPRO fix from trunk. X-Git-Tag: emacs-24.3-rc1~53 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=974c7646ec5b2985a50007c9d599154d667df349;p=emacs.git Backport GCPRO fix from trunk. The bug was reported for AIX before today's changes. I reproduced the problem on Fedora 17 x86-64 when setting GC_MARK_STACK by hand, and I presume it occurs with default configurations on HP-UX and Unixware. Trunk fix on 2013-01-14 by Dmitry Antipov : Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE. * eval.c (eval_sub): Protect `form' from being GCed before its car and cdr becomes protected with the backtrace entry. Fixes: debbugs:13650 --- diff --git a/src/ChangeLog b/src/ChangeLog index e283d2bb48c..46a466d060d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,15 @@ 2013-02-14 Paul Eggert + Backport GCPRO fix from trunk (Bug#13650). + The bug was reported for AIX before today's changes. + I reproduced the problem on Fedora 17 x86-64 when setting + GC_MARK_STACK by hand, and I presume it occurs with default + configurations on HP-UX and Unixware. + Trunk fix on 2013-01-14 by Dmitry Antipov : + Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE. + * eval.c (eval_sub): Protect `form' from being GCed before its + car and cdr becomes protected with the backtrace entry. + Fix AIX port (Bug#13650). * lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]: Fix bug introduced in 2012-07-27 change. DATA_SEG_BITS, if set, diff --git a/src/eval.c b/src/eval.c index a0db6e0745c..a21b2b05762 100644 --- a/src/eval.c +++ b/src/eval.c @@ -2034,7 +2034,10 @@ eval_sub (Lisp_Object form) return form; QUIT; + + GCPRO1 (form); maybe_gc (); + UNGCPRO; if (++lisp_eval_depth > max_lisp_eval_depth) {