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);
 

Reply via email to