mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-27 21:40:34 +02:00
Fix bug with lospace in generational configurations
This commit is contained in:
parent
7049871484
commit
68e3a692f5
1 changed files with 3 additions and 1 deletions
|
@ -298,6 +298,8 @@ large_object_space_remove_from_freelist(struct large_object_space *space,
|
||||||
if (dead->next)
|
if (dead->next)
|
||||||
dead->next->value.dead.prev = dead->prev;
|
dead->next->value.dead.prev = dead->prev;
|
||||||
*dead->prev = dead->next;
|
*dead->prev = dead->next;
|
||||||
|
dead->prev = NULL;
|
||||||
|
dead->next = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -305,7 +307,7 @@ large_object_space_sweep_one(uintptr_t addr, uintptr_t node_bits,
|
||||||
void *data) {
|
void *data) {
|
||||||
struct large_object_space *space = data;
|
struct large_object_space *space = data;
|
||||||
struct large_object_node *node = (struct large_object_node*) node_bits;
|
struct large_object_node *node = (struct large_object_node*) node_bits;
|
||||||
if (!GC_GENERATIONAL && !node->value.is_live)
|
if (!node->value.is_live)
|
||||||
return;
|
return;
|
||||||
GC_ASSERT(node->value.is_live);
|
GC_ASSERT(node->value.is_live);
|
||||||
uint8_t mark = atomic_load_explicit(large_object_node_mark_loc(node),
|
uint8_t mark = atomic_load_explicit(large_object_node_mark_loc(node),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue