changeset 95826:54e76878a8c0

(clone_per_buffer_values): Skip `name'.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 11 Jun 2008 16:25:03 +0000
parents 85ee8c71ce8c
children 59bdaf146c68
files src/ChangeLog src/buffer.c
diffstat 2 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Wed Jun 11 15:55:55 2008 +0000
+++ b/src/ChangeLog	Wed Jun 11 16:25:03 2008 +0000
@@ -1,3 +1,7 @@
+2008-06-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* buffer.c (clone_per_buffer_values): Skip `name'.
+
 2008-06-11  Chong Yidong  <cyd@stupidchicken.com>
 
 	* font.c (font_parse_fcname): Fix last change; accept decimal
--- a/src/buffer.c	Wed Jun 11 15:55:55 2008 +0000
+++ b/src/buffer.c	Wed Jun 11 16:25:03 2008 +0000
@@ -496,12 +496,16 @@
 
   /* 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);
+  for (offset = PER_BUFFER_VAR_OFFSET (undo_list);
        offset < sizeof *to;
        offset += sizeof (Lisp_Object))
     {
       Lisp_Object obj;
 
+      /* Don't touch the `name' which should be unique for every buffer.  */
+      if (offset == PER_BUFFER_VAR_OFFSET (name))
+	continue;
+
       obj = PER_BUFFER_VALUE (from, offset);
       if (MARKERP (obj))
 	{