diff options
author | Miles Bader <miles@gnu.org> | 2007-12-06 09:51:45 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 2007-12-06 09:51:45 +0000 |
commit | 0bd508417142ff377f34aec8dcec9438d9175c2c (patch) | |
tree | 4d60fe09e5cebf7d79766b11e9cda8cc1c9dbb9b /src/eval.c | |
parent | 98fe991da804a42f53f6a5e84cd5eab18a82e181 (diff) | |
parent | 9fb1ba8090da3528de56158a79bd3527d31c7f2f (diff) | |
download | emacs-0bd508417142ff377f34aec8dcec9438d9175c2c.tar.gz |
Merge from emacs--devo--0
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-294
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/eval.c b/src/eval.c index 7f5f58a2e81..74ebb0c90b6 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3263,7 +3263,6 @@ void specbind (symbol, value) Lisp_Object symbol, value; { - Lisp_Object ovalue; Lisp_Object valcontents; CHECK_SYMBOL (symbol); @@ -3283,9 +3282,7 @@ specbind (symbol, value) } else { - Lisp_Object valcontents; - - ovalue = find_symbol_value (symbol); + Lisp_Object ovalue = find_symbol_value (symbol); specpdl_ptr->func = 0; specpdl_ptr->old_value = ovalue; @@ -3330,10 +3327,14 @@ specbind (symbol, value) specpdl_ptr->symbol = symbol; specpdl_ptr++; - if (BUFFER_OBJFWDP (ovalue) || KBOARD_OBJFWDP (ovalue)) - store_symval_forwarding (symbol, ovalue, value, NULL); - else - set_internal (symbol, value, 0, 1); + /* We used to do + if (BUFFER_OBJFWDP (ovalue) || KBOARD_OBJFWDP (ovalue)) + store_symval_forwarding (symbol, ovalue, value, NULL); + else + but ovalue comes from find_symbol_value which should never return + such an internal value. */ + eassert (!(BUFFER_OBJFWDP (ovalue) || KBOARD_OBJFWDP (ovalue))); + set_internal (symbol, value, 0, 1); } } |