aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorKarl Heuer1994-11-15 02:04:40 +0000
committerKarl Heuer1994-11-15 02:04:40 +0000
commite202fa3405af38c0dd70f4146d8b796c86df3328 (patch)
tree1fb70976128198f9751c15b2f801387558bdef9a /src/alloc.c
parent21f7c864004da8750440588298e1975f457d50e7 (diff)
downloademacs-e202fa3405af38c0dd70f4146d8b796c86df3328.tar.gz
emacs-e202fa3405af38c0dd70f4146d8b796c86df3328.zip
(mark_object, gc_sweep): Use new overlay substructure.
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 4ff5bcfb4e7..bd62b95fc5e 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -1671,13 +1671,26 @@ mark_object (objptr)
1671 are protected with staticpro. */ 1671 are protected with staticpro. */
1672 break; 1672 break;
1673 1673
1674 case Lisp_Misc_Overlay:
1675 {
1676 struct Lisp_Overlay *ptr = XOVERLAY (obj);
1677 if (!XMARKBIT (ptr->plist))
1678 {
1679 XMARK (ptr->plist);
1680 mark_object (&ptr->start);
1681 mark_object (&ptr->end);
1682 objptr = &ptr->plist;
1683 goto loop;
1684 }
1685 }
1686 break;
1687
1674 default: 1688 default:
1675 abort (); 1689 abort ();
1676 } 1690 }
1677 break; 1691 break;
1678 1692
1679 case Lisp_Cons: 1693 case Lisp_Cons:
1680 case Lisp_Overlay:
1681 { 1694 {
1682 register struct Lisp_Cons *ptr = XCONS (obj); 1695 register struct Lisp_Cons *ptr = XCONS (obj);
1683 if (XMARKBIT (ptr->car)) break; 1696 if (XMARKBIT (ptr->car)) break;
@@ -1912,8 +1925,12 @@ gc_sweep ()
1912 case Lisp_Misc_Some_Buffer_Local_Value: 1925 case Lisp_Misc_Some_Buffer_Local_Value:
1913 markword = &mblk->markers[i].u_buffer_local_value.car; 1926 markword = &mblk->markers[i].u_buffer_local_value.car;
1914 break; 1927 break;
1928 case Lisp_Misc_Overlay:
1929 markword = &mblk->markers[i].u_overlay.plist;
1930 break;
1915 default: 1931 default:
1916 markword = 0; 1932 markword = 0;
1933 break;
1917 } 1934 }
1918 if (markword && !XMARKBIT (*markword)) 1935 if (markword && !XMARKBIT (*markword))
1919 { 1936 {