Mercurial > emacs
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;