changeset 9926:2a9f99682f82

(mark_object, gc_sweep): Use new overlay substructure.
author Karl Heuer <kwzh@gnu.org>
date Tue, 15 Nov 1994 02:04:40 +0000
parents b039e4156d74
children 05aa745fc829
files src/alloc.c
diffstat 1 files changed, 18 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/alloc.c	Tue Nov 15 02:04:23 1994 +0000
+++ b/src/alloc.c	Tue Nov 15 02:04:40 1994 +0000
@@ -1671,13 +1671,26 @@
 	     are protected with staticpro.  */
 	  break;
 
+	case Lisp_Misc_Overlay:
+	  {
+	    struct Lisp_Overlay *ptr = XOVERLAY (obj);
+	    if (!XMARKBIT (ptr->plist))
+	      {
+		XMARK (ptr->plist);
+		mark_object (&ptr->start);
+		mark_object (&ptr->end);
+		objptr = &ptr->plist;
+		goto loop;
+	      }
+	  }
+	  break;
+
 	default:
 	  abort ();
 	}
       break;
 
     case Lisp_Cons:
-    case Lisp_Overlay:
       {
 	register struct Lisp_Cons *ptr = XCONS (obj);
 	if (XMARKBIT (ptr->car)) break;
@@ -1912,8 +1925,12 @@
 	      case Lisp_Misc_Some_Buffer_Local_Value:
 		markword = &mblk->markers[i].u_buffer_local_value.car;
 		break;
+	      case Lisp_Misc_Overlay:
+		markword = &mblk->markers[i].u_overlay.plist;
+		break;
 	      default:
 		markword = 0;
+		break;
 	      }
 	    if (markword && !XMARKBIT (*markword))
 	      {