aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorStefan Monnier2003-07-09 14:53:41 +0000
committerStefan Monnier2003-07-09 14:53:41 +0000
commitf54253ec86cd867b20e348eb036522b4dc9733a8 (patch)
tree6bb7037e423ebab23d7b055bb1ee65714e80cd5b /src/alloc.c
parentd2394df5b555f331da89a687d5132bac058d3f44 (diff)
downloademacs-f54253ec86cd867b20e348eb036522b4dc9733a8.tar.gz
emacs-f54253ec86cd867b20e348eb036522b4dc9733a8.zip
(mark_object): Mark the new `next' field of overlays.
(mark_buffer): Manually mark the overlays_(after|before) fields.
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c21
1 files 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)
5007 struct Lisp_Overlay *ptr = XOVERLAY (obj); 5007 struct Lisp_Overlay *ptr = XOVERLAY (obj);
5008 mark_object (ptr->start); 5008 mark_object (ptr->start);
5009 mark_object (ptr->end); 5009 mark_object (ptr->end);
5010 obj = ptr->plist; 5010 mark_object (ptr->plist);
5011 goto loop; 5011 if (ptr->next)
5012 {
5013 XSETMISC (obj, ptr->next);
5014 goto loop;
5015 }
5012 } 5016 }
5013 break; 5017 break;
5014 5018
@@ -5062,7 +5066,7 @@ mark_buffer (buf)
5062 Lisp_Object buf; 5066 Lisp_Object buf;
5063{ 5067{
5064 register struct buffer *buffer = XBUFFER (buf); 5068 register struct buffer *buffer = XBUFFER (buf);
5065 register Lisp_Object *ptr; 5069 register Lisp_Object *ptr, tmp;
5066 Lisp_Object base_buffer; 5070 Lisp_Object base_buffer;
5067 5071
5068 VECTOR_MARK (buffer); 5072 VECTOR_MARK (buffer);
@@ -5105,6 +5109,17 @@ mark_buffer (buf)
5105 else 5109 else
5106 mark_object (buffer->undo_list); 5110 mark_object (buffer->undo_list);
5107 5111
5112 if (buffer->overlays_before)
5113 {
5114 XSETMISC (tmp, buffer->overlays_before);
5115 mark_object (tmp);
5116 }
5117 if (buffer->overlays_after)
5118 {
5119 XSETMISC (tmp, buffer->overlays_after);
5120 mark_object (tmp);
5121 }
5122
5108 for (ptr = &buffer->name; 5123 for (ptr = &buffer->name;
5109 (char *)ptr < (char *)buffer + sizeof (struct buffer); 5124 (char *)ptr < (char *)buffer + sizeof (struct buffer);
5110 ptr++) 5125 ptr++)