From f828cb1eaa157d24e876f1959f98fad1dcfb35ab Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 1 Apr 2020 07:53:07 -0600 Subject: [PATCH] fix emphemeron-key tracking in a segment with locked objects original commit: 9d1252b176e972f92030599dae0ce159c9d36c5b --- c/gc.c | 1 + c/segment.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/c/gc.c b/c/gc.c index f2f69a0cc7..8d1dd76ab6 100644 --- a/c/gc.c +++ b/c/gc.c @@ -1524,6 +1524,7 @@ void GCENTRY(ptr tc, IGEN mcg, IGEN tg) { if (g == static_generation) S_G.number_of_nonstatic_segments -= 1; si->next = S_G.occupied_segments[s][g]; S_G.occupied_segments[s][g] = si; + si->trigger_ephemerons = NULL; #ifdef PRESERVE_FLONUM_EQ /* any flonums forwarded won't be reference anymore */ si->forwarded_flonums = NULL; diff --git a/c/segment.c b/c/segment.c index 142af77b9f..a5b333558d 100644 --- a/c/segment.c +++ b/c/segment.c @@ -230,7 +230,6 @@ static void initialize_seginfo(seginfo *si, ISPC s, IGEN g) { si->generation = g; si->sorted = 0; si->min_dirty_byte = 0xff; - si->trigger_ephemerons = NULL; for (d = 0; d < cards_per_segment; d += sizeof(ptr)) { iptr *dp = (iptr *)(si->dirty_bytes + d); /* fill sizeof(iptr) bytes at a time with 0xff */