[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master db64a86: Port to 32-bit sparc64
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] master db64a86: Port to 32-bit sparc64 |
Date: |
Tue, 20 Mar 2018 12:55:07 -0400 (EDT) |
branch: master
commit db64a866f6971c5d63565253c0c8d8db15d4a4dc
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
Port to 32-bit sparc64
Problem reported by Ulrich Mueller; fix suggested by Eli Zaretskii
and Andreas Schwab (Bug#30855).
* src/alloc.c (mark_memory): Call mark_maybe_object only on
pointers that are properly aligned for Lisp_Object.
---
src/alloc.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/alloc.c b/src/alloc.c
index f97b99c..da01173 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -4981,7 +4981,11 @@ mark_memory (void *start, void *end)
for (pp = start; (void *) pp < end; pp += GC_POINTER_ALIGNMENT)
{
mark_maybe_pointer (*(void **) pp);
- mark_maybe_object (*(Lisp_Object *) pp);
+
+ verify (alignof (Lisp_Object) % GC_POINTER_ALIGNMENT == 0);
+ if (alignof (Lisp_Object) == GC_POINTER_ALIGNMENT
+ || (uintptr_t) pp % alignof (Lisp_Object) == 0)
+ mark_maybe_object (*(Lisp_Object *) pp);
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master db64a86: Port to 32-bit sparc64,
Paul Eggert <=