aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog3
-rw-r--r--src/data.c13
-rw-r--r--src/eval.c17
3 files changed, 19 insertions, 14 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index d05ccc44b3d..e38d997c405 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,8 @@
12007-11-19 Stefan Monnier <monnier@iro.umontreal.ca> 12007-11-19 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * data.c (store_symval_forwarding, set_internal):
4 * eval.c (specbind): Remove dead code.
5
3 * coding.c (detect_coding, Fupdate_coding_systems_internal): 6 * coding.c (detect_coding, Fupdate_coding_systems_internal):
4 * fns.c (Fmd5): Use find_symbol_value rather than SYMBOL_VALUE 7 * fns.c (Fmd5): Use find_symbol_value rather than SYMBOL_VALUE
5 Since we do not want to see internal Lisp_*fwd objects here. 8 Since we do not want to see internal Lisp_*fwd objects here.
diff --git a/src/data.c b/src/data.c
index 070d5a0c7ce..2ee84f01a14 100644
--- a/src/data.c
+++ b/src/data.c
@@ -922,9 +922,11 @@ store_symval_forwarding (symbol, valcontents, newval, buf)
922 case Lisp_Misc_Intfwd: 922 case Lisp_Misc_Intfwd:
923 CHECK_NUMBER (newval); 923 CHECK_NUMBER (newval);
924 *XINTFWD (valcontents)->intvar = XINT (newval); 924 *XINTFWD (valcontents)->intvar = XINT (newval);
925 if (*XINTFWD (valcontents)->intvar != XINT (newval)) 925 /* This can never happen since intvar points to an EMACS_INT
926 error ("Value out of range for variable `%s'", 926 which is at least large enough to hold a Lisp_Object.
927 SDATA (SYMBOL_NAME (symbol))); 927 if (*XINTFWD (valcontents)->intvar != XINT (newval))
928 error ("Value out of range for variable `%s'",
929 SDATA (SYMBOL_NAME (symbol))); */
928 break; 930 break;
929 931
930 case Lisp_Misc_Boolfwd: 932 case Lisp_Misc_Boolfwd:
@@ -1237,9 +1239,8 @@ set_internal (symbol, newval, buf, bindflag)
1237 || buf != XBUFFER (XBUFFER_LOCAL_VALUE (valcontents)->buffer) 1239 || buf != XBUFFER (XBUFFER_LOCAL_VALUE (valcontents)->buffer)
1238 || (XBUFFER_LOCAL_VALUE (valcontents)->check_frame 1240 || (XBUFFER_LOCAL_VALUE (valcontents)->check_frame
1239 && !EQ (selected_frame, XBUFFER_LOCAL_VALUE (valcontents)->frame)) 1241 && !EQ (selected_frame, XBUFFER_LOCAL_VALUE (valcontents)->frame))
1240 || (BUFFER_LOCAL_VALUEP (valcontents) 1242 || (EQ (XCAR (current_alist_element),
1241 && EQ (XCAR (current_alist_element), 1243 current_alist_element)))
1242 current_alist_element)))
1243 { 1244 {
1244 /* The currently loaded binding is not necessarily valid. 1245 /* The currently loaded binding is not necessarily valid.
1245 We need to unload it, and choose a new binding. */ 1246 We need to unload it, and choose a new binding. */
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
3263specbind (symbol, value) 3263specbind (symbol, value)
3264 Lisp_Object symbol, value; 3264 Lisp_Object symbol, value;
3265{ 3265{
3266 Lisp_Object ovalue;
3267 Lisp_Object valcontents; 3266 Lisp_Object valcontents;
3268 3267
3269 CHECK_SYMBOL (symbol); 3268 CHECK_SYMBOL (symbol);
@@ -3283,9 +3282,7 @@ specbind (symbol, value)
3283 } 3282 }
3284 else 3283 else
3285 { 3284 {
3286 Lisp_Object valcontents; 3285 Lisp_Object ovalue = find_symbol_value (symbol);
3287
3288 ovalue = find_symbol_value (symbol);
3289 specpdl_ptr->func = 0; 3286 specpdl_ptr->func = 0;
3290 specpdl_ptr->old_value = ovalue; 3287 specpdl_ptr->old_value = ovalue;
3291 3288
@@ -3330,10 +3327,14 @@ specbind (symbol, value)
3330 specpdl_ptr->symbol = symbol; 3327 specpdl_ptr->symbol = symbol;
3331 3328
3332 specpdl_ptr++; 3329 specpdl_ptr++;
3333 if (BUFFER_OBJFWDP (ovalue) || KBOARD_OBJFWDP (ovalue)) 3330 /* We used to do
3334 store_symval_forwarding (symbol, ovalue, value, NULL); 3331 if (BUFFER_OBJFWDP (ovalue) || KBOARD_OBJFWDP (ovalue))
3335 else 3332 store_symval_forwarding (symbol, ovalue, value, NULL);
3336 set_internal (symbol, value, 0, 1); 3333 else
3334 but ovalue comes from find_symbol_value which should never return
3335 such an internal value. */
3336 eassert (!(BUFFER_OBJFWDP (ovalue) || KBOARD_OBJFWDP (ovalue)));
3337 set_internal (symbol, value, 0, 1);
3337 } 3338 }
3338} 3339}
3339 3340