mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-30 23:10:21 +02:00
bdw: Fix embarrassing failure to mark atomic freelists
This commit is contained in:
parent
05e8aba462
commit
d1aa0d894f
1 changed files with 7 additions and 0 deletions
|
@ -399,6 +399,13 @@ mark_mutator(GC_word *addr, struct GC_ms_entry *mark_stack_ptr,
|
||||||
state.mark_stack_limit,
|
state.mark_stack_limit,
|
||||||
NULL);
|
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)
|
if (mut->roots)
|
||||||
gc_trace_mutator_roots(mut->roots, bdw_mark_edge, mut->heap, &state);
|
gc_trace_mutator_roots(mut->roots, bdw_mark_edge, mut->heap, &state);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue