aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBarry O'Reilly2013-10-19 14:42:38 -0400
committerBarry O'Reilly2013-10-19 14:42:38 -0400
commit6a3121904d76e3b2f63007341d48c5c1af55de80 (patch)
tree0b6a9d797d11c07685a55fae9a293884d870a9a8 /src
parent77936017aff66041231f078e8b269247c721456e (diff)
downloademacs-6a3121904d76e3b2f63007341d48c5c1af55de80.tar.gz
emacs-6a3121904d76e3b2f63007341d48c5c1af55de80.zip
* src/eval.c (unbind_for_thread_switch): Fix iteration over the
specpdl stack.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/eval.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 705b9c771df..b6ecd5f60ba 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12013-10-19 Barry O'Reilly <gundaetiapo@gmail.com>
2
3 * eval.c (unbind_for_thread_switch): Fix iteration over the
4 specpdl stack.
5
12013-09-01 Eli Zaretskii <eliz@gnu.org> 62013-09-01 Eli Zaretskii <eliz@gnu.org>
2 7
3 * eval.c (unbind_for_thread_switch): Accept a 'struct 8 * eval.c (unbind_for_thread_switch): Accept a 'struct
diff --git a/src/eval.c b/src/eval.c
index b8a61590387..fc16c15e626 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3488,9 +3488,9 @@ unbind_for_thread_switch (struct thread_state *thr)
3488{ 3488{
3489 union specbinding *bind; 3489 union specbinding *bind;
3490 3490
3491 for (bind = thr->m_specpdl_ptr; bind != thr->m_specpdl; --bind) 3491 for (bind = thr->m_specpdl_ptr; bind > thr->m_specpdl;)
3492 { 3492 {
3493 if (bind->kind >= SPECPDL_LET) 3493 if ((--bind)->kind >= SPECPDL_LET)
3494 { 3494 {
3495 bind->let.saved_value = find_symbol_value (specpdl_symbol (bind)); 3495 bind->let.saved_value = find_symbol_value (specpdl_symbol (bind));
3496 do_one_unbind (bind, 0); 3496 do_one_unbind (bind, 0);