# HG changeset patch # User Karl Heuer # Date 785141349 0 # Node ID 82f3daf769959fb20389347fe029268aa994ed4d # Parent b83150a8020dcd684f9dac5506409e1600cd97d9 (Fpurecopy): Use type test macros. (mark_object): Use the new pseudovector convention. diff -r b83150a8020d -r 82f3daf76995 src/alloc.c --- 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;