changeset 10009:82f3daf76995

(Fpurecopy): Use type test macros. (mark_object): Use the new pseudovector convention.
author Karl Heuer <kwzh@gnu.org>
date Fri, 18 Nov 1994 06:49:09 +0000
parents b83150a8020d
children 67375493afa2
files src/alloc.c
diffstat 1 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/alloc.c	Fri Nov 18 05:29:08 1994 +0000
+++ b/src/alloc.c	Fri Nov 18 06:49:09 1994 +0000
@@ -1522,10 +1522,9 @@
       }
       break;
 
-    case Lisp_Vector:
+    case Lisp_Vectorlike:
     case Lisp_Window:
     case Lisp_Process:
-    case Lisp_Window_Configuration:
       {
 	register struct Lisp_Vector *ptr = XVECTOR (obj);
 	register EMACS_INT size = ptr->size;
@@ -1538,9 +1537,11 @@
 	struct Lisp_Vector *volatile ptr1 = ptr;
 	register int i;
 
-	if (size & ARRAY_MARK_FLAG) break;   /* Already marked */
+	if (size & ARRAY_MARK_FLAG) break; /* Already marked */
 	ptr->size |= ARRAY_MARK_FLAG; /* Else mark it */
-	for (i = 0; i < size; i++)     /* and then mark its elements */
+	if (size & PSEUDOVECTOR_FLAG)
+	  size &= PSEUDOVECTOR_SIZE_MASK;
+	for (i = 0; i < size; i++) /* and then mark its elements */
 	  mark_object (&ptr1->contents[i]);
       }
       break;