From: Karl Heuer Date: Fri, 18 Nov 1994 06:49:09 +0000 (+0000) Subject: (Fpurecopy): Use type test macros. X-Git-Tag: emacs-19.34~5846 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=76437631034878f5a3ee9bd0bf58c8367708af4c;p=emacs.git (Fpurecopy): Use type test macros. (mark_object): Use the new pseudovector convention. --- 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;