wingo pushed a commit to branch wip-whippet in repository guile. commit d1aa0d894f2b5c1542e2f9a9f518da49b5ecf7b4 Author: Andy Wingo <wi...@igalia.com> AuthorDate: Thu Mar 27 12:00:21 2025 +0100
bdw: Fix embarrassing failure to mark atomic freelists --- src/bdw.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/bdw.c b/src/bdw.c index 18d1b893b..ea446557d 100644 --- a/src/bdw.c +++ b/src/bdw.c @@ -399,6 +399,13 @@ mark_mutator(GC_word *addr, struct GC_ms_entry *mark_stack_ptr, state.mark_stack_limit, NULL); + for (int i = 0; i < GC_INLINE_FREELIST_COUNT; i++) + for (void *head = mut->pointerless_freelists[i]; head; head = *(void**)head) + state.mark_stack_ptr = GC_MARK_AND_PUSH (head, + state.mark_stack_ptr, + state.mark_stack_limit, + NULL); + if (mut->roots) gc_trace_mutator_roots(mut->roots, bdw_mark_edge, mut->heap, &state);