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);
     }
 }