From: Stefan Monnier Date: Wed, 9 Jul 2003 14:53:41 +0000 (+0000) Subject: (mark_object): Mark the new `next' field of overlays. X-Git-Tag: ttn-vms-21-2-B4~9407 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f54253ec86cd867b20e348eb036522b4dc9733a8;p=emacs.git (mark_object): Mark the new `next' field of overlays. (mark_buffer): Manually mark the overlays_(after|before) fields. --- 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++)