aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2013-02-14 14:08:38 -0800
committerPaul Eggert2013-02-14 14:08:38 -0800
commit974c7646ec5b2985a50007c9d599154d667df349 (patch)
treead7e887ee050d4a53dcb52afca14562294ad5636 /src
parent35b3a27e67b60e547ac8bc9388e7724d1f829959 (diff)
downloademacs-974c7646ec5b2985a50007c9d599154d667df349.tar.gz
emacs-974c7646ec5b2985a50007c9d599154d667df349.zip
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 <dmantipov@yandex.ru>: 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
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog10
-rw-r--r--src/eval.c3
2 files changed, 13 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index e283d2bb48c..46a466d060d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,15 @@
12013-02-14 Paul Eggert <eggert@cs.ucla.edu> 12013-02-14 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Backport GCPRO fix from trunk (Bug#13650).
4 The bug was reported for AIX before today's changes.
5 I reproduced the problem on Fedora 17 x86-64 when setting
6 GC_MARK_STACK by hand, and I presume it occurs with default
7 configurations on HP-UX and Unixware.
8 Trunk fix on 2013-01-14 by Dmitry Antipov <dmantipov@yandex.ru>:
9 Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
10 * eval.c (eval_sub): Protect `form' from being GCed before its
11 car and cdr becomes protected with the backtrace entry.
12
3 Fix AIX port (Bug#13650). 13 Fix AIX port (Bug#13650).
4 * lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]: 14 * lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]:
5 Fix bug introduced in 2012-07-27 change. DATA_SEG_BITS, if set, 15 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)
2034 return form; 2034 return form;
2035 2035
2036 QUIT; 2036 QUIT;
2037
2038 GCPRO1 (form);
2037 maybe_gc (); 2039 maybe_gc ();
2040 UNGCPRO;
2038 2041
2039 if (++lisp_eval_depth > max_lisp_eval_depth) 2042 if (++lisp_eval_depth > max_lisp_eval_depth)
2040 { 2043 {