]> git.eshelyaron.com Git - emacs.git/commitdiff
* data.c (store_symval_forwarding, set_internal):
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 19 Nov 2007 07:42:25 +0000 (07:42 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 19 Nov 2007 07:42:25 +0000 (07:42 +0000)
* eval.c (specbind): Remove dead code.

src/ChangeLog
src/data.c
src/eval.c

index d05ccc44b3de646899cc543c4a026c2ec269dcec..e38d997c4059f46262d1a0b954877505158e3597 100644 (file)
@@ -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.
index 070d5a0c7cedf52a0fc9fc809d296dc1b70b952b..2ee84f01a14bcdd6bb13117821004e0a41c6aa6f 100644 (file)
@@ -922,9 +922,11 @@ store_symval_forwarding (symbol, valcontents, newval, buf)
        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 @@ set_internal (symbol, newval, buf, bindflag)
          || 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.  */
index 7f5f58a2e81cd425e35e45bedd5ac642bf63a940..74ebb0c90b6d21a25e4633c31fd1598bfc6a1c35 100644 (file)
@@ -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);
     }
 }