>From b3501c978f315d980f7a26481989725d63953558 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 28 May 2020 12:27:27 -0700 Subject: [PATCH] Fix aborts due to GC losing pseudovectors Problem reported by Eli Zaretskii (Bug#41321). * src/alloc.c (maybe_lisp_pointer): Modulo GCALIGNMENT, not modulo LISP_ALIGNMENT. Master has a more-elaborate fix. Do not merge to master. --- src/alloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/alloc.c b/src/alloc.c index 1c6b664b22..c7a4a3ee86 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -4589,12 +4589,12 @@ mark_maybe_objects (Lisp_Object const *array, ptrdiff_t nelts) collected, and false otherwise (i.e., false if it is easy to see that P cannot point to Lisp data that can be garbage collected). Symbols are implemented via offsets not pointers, but the offsets - are also multiples of LISP_ALIGNMENT. */ + are also multiples of GCALIGNMENT. */ static bool maybe_lisp_pointer (void *p) { - return (uintptr_t) p % LISP_ALIGNMENT == 0; + return (uintptr_t) p % GCALIGNMENT == 0; } /* If P points to Lisp data, mark that as live if it isn't already -- 2.17.1