diff options
author | Richard M. Stallman <rms@gnu.org> | 1998-03-12 05:49:15 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1998-03-12 05:49:15 +0000 |
commit | 5ef02e147c1685c6af189ab019a0d4548c5a89da (patch) | |
tree | bc834a3de2ece4ec6047bd57c86428b777020536 /src/alloc.c | |
parent | b1151ef119add1ebcaac86f0b378660b2c4ead61 (diff) | |
download | emacs-5ef02e147c1685c6af189ab019a0d4548c5a89da.tar.gz |
(gc_sweep, mark_object): Handle new data structure
for struct Lisp_Buffer_Local_Value.
Diffstat (limited to 'src/alloc.c')
-rw-r--r-- | src/alloc.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/alloc.c b/src/alloc.c index 5ae44416943..337a7f0ede5 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -2091,15 +2091,17 @@ mark_object (argptr) { register struct Lisp_Buffer_Local_Value *ptr = XBUFFER_LOCAL_VALUE (obj); - if (XMARKBIT (ptr->car)) break; - XMARK (ptr->car); + if (XMARKBIT (ptr->realvalue)) break; + XMARK (ptr->realvalue); /* If the cdr is nil, avoid recursion for the car. */ if (EQ (ptr->cdr, Qnil)) { - objptr = &ptr->car; + objptr = &ptr->realvalue; goto loop; } - mark_object (&ptr->car); + mark_object (&ptr->realvalue); + mark_object (&ptr->buffer); + mark_object (&ptr->frame); /* See comment above under Lisp_Vector for why not use ptr here. */ objptr = &XBUFFER_LOCAL_VALUE (obj)->cdr; goto loop; @@ -2433,9 +2435,8 @@ gc_sweep () } #ifndef standalone - /* Put all unmarked markers on free list. - Unchain each one first from the buffer it points into, - but only if it's a real marker. */ + /* Put all unmarked misc's on free list. + For a marker, first unchain it from the buffer it points into. */ { register struct marker_block *mblk; struct marker_block **mprev = &marker_block; @@ -2460,7 +2461,7 @@ gc_sweep () break; case Lisp_Misc_Buffer_Local_Value: case Lisp_Misc_Some_Buffer_Local_Value: - markword = &mblk->markers[i].u_buffer_local_value.car; + markword = &mblk->markers[i].u_buffer_local_value.realvalue; break; case Lisp_Misc_Overlay: markword = &mblk->markers[i].u_overlay.plist; |