diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2008-02-11 17:56:13 +0000 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2008-02-11 17:56:13 +0000 |
commit | d61e59f2de9fb3aec494090c9e8a218f61c77a68 (patch) | |
tree | c18e63358fcf6e73ccd280d62d9090fa2b468ba4 /src/buffer.c | |
parent | 57aef7e7f170e003db28a59340570de1eaef8f74 (diff) | |
download | emacs-d61e59f2de9fb3aec494090c9e8a218f61c77a68.tar.gz |
(clone_per_buffer_values, reset_buffer_local_variables)
(Fbuffer_local_value, Fbuffer_local_variables): Don't forget undo_list.
Diffstat (limited to 'src/buffer.c')
-rw-r--r-- | src/buffer.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/buffer.c b/src/buffer.c index d056ce7dc48..c0162841c62 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -496,7 +496,9 @@ clone_per_buffer_values (from, to) XSETBUFFER (to_buffer, to); - for (offset = PER_BUFFER_VAR_OFFSET (name) + sizeof (Lisp_Object); + /* buffer-local Lisp variables start at `undo_list', + tho only the ones from `name' on are GC'd normally. */ + for (offset = PER_BUFFER_VAR_OFFSET (undo_list) + sizeof (Lisp_Object); offset < sizeof *to; offset += sizeof (Lisp_Object)) { @@ -808,7 +810,9 @@ reset_buffer_local_variables (b, permanent_too) /* For each slot that has a default value, copy that into the slot. */ - for (offset = PER_BUFFER_VAR_OFFSET (name); + /* buffer-local Lisp variables start at `undo_list', + tho only the ones from `name' on are GC'd normally. */ + for (offset = PER_BUFFER_VAR_OFFSET (undo_list); offset < sizeof *b; offset += sizeof (Lisp_Object)) { @@ -940,7 +944,9 @@ is the default binding of the variable. */) int found = 0; /* Look in special slots */ - for (offset = PER_BUFFER_VAR_OFFSET (name); + /* buffer-local Lisp variables start at `undo_list', + tho only the ones from `name' on are GC'd normally. */ + for (offset = PER_BUFFER_VAR_OFFSET (undo_list); offset < sizeof (struct buffer); /* sizeof EMACS_INT == sizeof Lisp_Object */ offset += (sizeof (EMACS_INT))) @@ -1051,7 +1057,9 @@ No argument or nil as argument means use current buffer as BUFFER. */) { int offset, idx; - for (offset = PER_BUFFER_VAR_OFFSET (name); + /* buffer-local Lisp variables start at `undo_list', + tho only the ones from `name' on are GC'd normally. */ + for (offset = PER_BUFFER_VAR_OFFSET (undo_list); offset < sizeof (struct buffer); /* sizeof EMACS_INT == sizeof Lisp_Object */ offset += (sizeof (EMACS_INT))) |