Mercurial > emacs
changeset 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 | 8e5b337fea59 |
children | 79043dac5524 |
files | src/ChangeLog src/data.c src/eval.c |
diffstat | 3 files changed, 19 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Mon Nov 19 07:40:51 2007 +0000 +++ b/src/ChangeLog Mon Nov 19 07:42:25 2007 +0000 @@ -1,5 +1,8 @@ 2007-11-19 Stefan Monnier <monnier@iro.umontreal.ca> + * data.c (store_symval_forwarding, set_internal): + * eval.c (specbind): Remove dead code. + * coding.c (detect_coding, Fupdate_coding_systems_internal): * fns.c (Fmd5): Use find_symbol_value rather than SYMBOL_VALUE Since we do not want to see internal Lisp_*fwd objects here.
--- a/src/data.c Mon Nov 19 07:40:51 2007 +0000 +++ b/src/data.c Mon Nov 19 07:42:25 2007 +0000 @@ -922,9 +922,11 @@ case Lisp_Misc_Intfwd: CHECK_NUMBER (newval); *XINTFWD (valcontents)->intvar = XINT (newval); - if (*XINTFWD (valcontents)->intvar != XINT (newval)) - error ("Value out of range for variable `%s'", - SDATA (SYMBOL_NAME (symbol))); + /* This can never happen since intvar points to an EMACS_INT + which is at least large enough to hold a Lisp_Object. + if (*XINTFWD (valcontents)->intvar != XINT (newval)) + error ("Value out of range for variable `%s'", + SDATA (SYMBOL_NAME (symbol))); */ break; case Lisp_Misc_Boolfwd: @@ -1237,9 +1239,8 @@ || buf != XBUFFER (XBUFFER_LOCAL_VALUE (valcontents)->buffer) || (XBUFFER_LOCAL_VALUE (valcontents)->check_frame && !EQ (selected_frame, XBUFFER_LOCAL_VALUE (valcontents)->frame)) - || (BUFFER_LOCAL_VALUEP (valcontents) - && EQ (XCAR (current_alist_element), - current_alist_element))) + || (EQ (XCAR (current_alist_element), + current_alist_element))) { /* The currently loaded binding is not necessarily valid. We need to unload it, and choose a new binding. */
--- 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); } }