From 76437631034878f5a3ee9bd0bf58c8367708af4c Mon Sep 17 00:00:00 2001 From: Karl Heuer Date: Fri, 18 Nov 1994 06:49:09 +0000 Subject: [PATCH] (Fpurecopy): Use type test macros. (mark_object): Use the new pseudovector convention. --- src/alloc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/alloc.c b/src/alloc.c index 02587c6d906..293fc8bc914 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -1522,10 +1522,9 @@ mark_object (objptr) } 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 @@ mark_object (objptr) 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; -- 2.39.5