From f54253ec86cd867b20e348eb036522b4dc9733a8 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 9 Jul 2003 14:53:41 +0000 Subject: [PATCH] (mark_object): Mark the new `next' field of overlays. (mark_buffer): Manually mark the overlays_(after|before) fields. --- src/alloc.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/alloc.c b/src/alloc.c index c31132820bb..359904a775a 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -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++) -- 2.39.2