]> git.eshelyaron.com Git - emacs.git/commitdiff
(mark_object): Mark the new `next' field of overlays.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 9 Jul 2003 14:53:41 +0000 (14:53 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 9 Jul 2003 14:53:41 +0000 (14:53 +0000)
(mark_buffer): Manually mark the overlays_(after|before) fields.

src/alloc.c

index c31132820bbc096b7b5fab3e5e13f85941c697b9..359904a775a39233c2d7fbb7832989ff092413f8 100644 (file)
@@ -5007,8 +5007,12 @@ mark_object (arg)
            struct Lisp_Overlay *ptr = XOVERLAY (obj);
            mark_object (ptr->start);
            mark_object (ptr->end);
-           obj = ptr->plist;
-           goto loop;
+           mark_object (ptr->plist);
+           if (ptr->next)
+             {
+               XSETMISC (obj, ptr->next);
+               goto loop;
+             }
          }
          break;
 
@@ -5062,7 +5066,7 @@ mark_buffer (buf)
      Lisp_Object buf;
 {
   register struct buffer *buffer = XBUFFER (buf);
-  register Lisp_Object *ptr;
+  register Lisp_Object *ptr, tmp;
   Lisp_Object base_buffer;
 
   VECTOR_MARK (buffer);
@@ -5105,6 +5109,17 @@ mark_buffer (buf)
   else
     mark_object (buffer->undo_list);
 
+  if (buffer->overlays_before)
+    {
+      XSETMISC (tmp, buffer->overlays_before);
+      mark_object (tmp);
+    }
+  if (buffer->overlays_after)
+    {
+      XSETMISC (tmp, buffer->overlays_after);
+      mark_object (tmp);
+    }
+
   for (ptr = &buffer->name;
        (char *)ptr < (char *)buffer + sizeof (struct buffer);
        ptr++)