Mercurial > emacs
diff src/eval.c @ 86229:0ec5ce87b9e0
* data.c (store_symval_forwarding, set_internal):
* eval.c (specbind): Remove dead code.
| author | Stefan Monnier <monnier@iro.umontreal.ca> |
|---|---|
| date | Mon, 19 Nov 2007 07:42:25 +0000 |
| parents | b210bba3f477 |
| children | 107ccd98fa12 53108e6cea98 |
line wrap: on
line diff
--- a/src/eval.c Mon Nov 19 07:40:51 2007 +0000 +++ b/src/eval.c Mon Nov 19 07:42:25 2007 +0000 @@ -3263,7 +3263,6 @@ specbind (symbol, value) Lisp_Object symbol, value; { - Lisp_Object ovalue; Lisp_Object valcontents; CHECK_SYMBOL (symbol); @@ -3283,9 +3282,7 @@ } 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 @@ 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); } }
