summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/alloc.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/alloc.c b/src/alloc.c
index bb27a5df109..71870839916 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -1822,7 +1822,13 @@ mark_object (argptr)
}
#endif /* MULTI_FRAME */
else if (GC_BOOL_VECTOR_P (obj))
- ;
+ {
+ register struct Lisp_Vector *ptr = XVECTOR (obj);
+
+ if (ptr->size & ARRAY_MARK_FLAG)
+ break; /* Already marked */
+ ptr->size |= ARRAY_MARK_FLAG; /* Else mark it */
+ }
else
{
register struct Lisp_Vector *ptr = XVECTOR (obj);