Port to 32-bit sparc64
Backport from master. 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.
This commit is contained in:
parent
23527013c7
commit
d09c488cb5
1 changed files with 5 additions and 1 deletions
|
@ -4983,7 +4983,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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue