diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/alloc.c | 8 |
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); |