summaryrefslogtreecommitdiff
path: root/src/data.c
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1996-01-23 18:06:54 +0000
committerKarl Heuer <kwzh@gnu.org>1996-01-23 18:06:54 +0000
commit28a085da1b8e5fc49f16c8e3663bd9e49fec8404 (patch)
tree44b00e74cdcbaed227306f692f3d1e5fb2a8365c /src/data.c
parenta5c8b6be8ef33dbf9200660855a3baf111483f20 (diff)
downloademacs-28a085da1b8e5fc49f16c8e3663bd9e49fec8404.tar.gz
(kill-local-variable): didn't update the value of
forwarded objects.
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/data.c b/src/data.c
index 263a21bebc1..8b9a158ef27 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1362,14 +1362,18 @@ From now on the default value will apply in this buffer.")
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;