emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/emacs-24 r111266: Backport GCPRO fix from t


From: Paul Eggert
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-24 r111266: Backport GCPRO fix from trunk.
Date: Thu, 14 Feb 2013 14:08:38 -0800
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 111266
fixes bug: http://debbugs.gnu.org/13650
committer: Paul Eggert <address@hidden>
branch nick: emacs-24
timestamp: Thu 2013-02-14 14:08:38 -0800
message:
  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 <address@hidden>:
  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.
modified:
  src/ChangeLog
  src/eval.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-02-14 20:05:10 +0000
+++ b/src/ChangeLog     2013-02-14 22:08:38 +0000
@@ -1,5 +1,15 @@
 2013-02-14  Paul Eggert  <address@hidden>
 
+       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 <address@hidden>:
+       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,

=== modified file 'src/eval.c'
--- a/src/eval.c        2013-01-11 07:51:25 +0000
+++ b/src/eval.c        2013-02-14 22:08:38 +0000
@@ -2034,7 +2034,10 @@
     return form;
 
   QUIT;
+
+  GCPRO1 (form);
   maybe_gc ();
+  UNGCPRO;
 
   if (++lisp_eval_depth > max_lisp_eval_depth)
     {


reply via email to

[Prev in Thread] Current Thread [Next in Thread]