From 68e3a692f58b5ceb34dcd4296d12e9aa3298ce34 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 23 Jan 2025 19:24:57 +0100 Subject: [PATCH] Fix bug with lospace in generational configurations --- src/large-object-space.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/large-object-space.h b/src/large-object-space.h index 38b7e51a4..a7c762056 100644 --- a/src/large-object-space.h +++ b/src/large-object-space.h @@ -298,6 +298,8 @@ large_object_space_remove_from_freelist(struct large_object_space *space, if (dead->next) dead->next->value.dead.prev = dead->prev; *dead->prev = dead->next; + dead->prev = NULL; + dead->next = NULL; } static void @@ -305,7 +307,7 @@ large_object_space_sweep_one(uintptr_t addr, uintptr_t node_bits, void *data) { struct large_object_space *space = data; struct large_object_node *node = (struct large_object_node*) node_bits; - if (!GC_GENERATIONAL && !node->value.is_live) + if (!node->value.is_live) return; GC_ASSERT(node->value.is_live); uint8_t mark = atomic_load_explicit(large_object_node_mark_loc(node),