# HG changeset patch # User Stefan Monnier # Date 1057762421 0 # Node ID 65772ad7d4e1862d740d17e405805abdf774d8ab # Parent efecd49d73386f99355b8664b2944fd87178d7ea (mark_object): Mark the new `next' field of overlays. (mark_buffer): Manually mark the overlays_(after|before) fields. diff -r efecd49d7338 -r 65772ad7d4e1 src/alloc.c --- a/src/alloc.c Wed Jul 09 14:52:55 2003 +0000 +++ b/src/alloc.c Wed Jul 09 14:53:41 2003 +0000 @@ -5007,8 +5007,12 @@ 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 @@ 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 @@ 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++)