(clone_per_buffer_values): Skip `name'.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 11 Jun 2008 16:25:03 +0000 (16:25 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 11 Jun 2008 16:25:03 +0000 (16:25 +0000)
src/ChangeLog
src/buffer.c

index b569a0d..3caabe5 100644 (file)
@@ -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
index bafcb02..04786dc 100644 (file)
@@ -496,12 +496,16 @@ clone_per_buffer_values (from, to)
 
   /* 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))
        {