changeset 14264:215d8ba39537

(kill-local-variable): didn't update the value of forwarded objects.
author Karl Heuer <kwzh@gnu.org>
date Tue, 23 Jan 1996 18:06:54 +0000
parents 082e86e9bca3
children 9bc9be522a4d
files src/data.c
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/data.c	Tue Jan 23 18:01:17 1996 +0000
+++ b/src/data.c	Tue Jan 23 18:06:54 1996 +0000
@@ -1362,14 +1362,18 @@
     current_buffer->local_var_alist
       = Fdelq (tem, current_buffer->local_var_alist);
 
-  /* Make sure symbol does not think it is set up for this buffer;
-     force it to look once again for this buffer's value */
+  /* If the symbol is set up for the current buffer, recompute its
+     value.  We have to do it now, or else forwarded objects won't
+     work right. */
   {
     Lisp_Object *pvalbuf;
     valcontents = XSYMBOL (variable)->value;
     pvalbuf = &XCONS (XBUFFER_LOCAL_VALUE (valcontents)->cdr)->car;
     if (current_buffer == XBUFFER (*pvalbuf))
-      *pvalbuf = Qnil;
+      {
+	*pvalbuf = Qnil;
+	Fsymbol_value(variable);
+      }
   }
 
   return variable;