wingo pushed a commit to branch wip-whippet in repository guile. commit b4ea55b9c436a320b19ef8ce5c034fe7e6b0e08c Author: Andy Wingo <wi...@igalia.com> AuthorDate: Fri Oct 4 13:51:27 2024 +0200
Don't clear log bits when marking This happens in a post-pass. --- src/nofl-space.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/nofl-space.h b/src/nofl-space.h index 817c10461..a6e2b2b13 100644 --- a/src/nofl-space.h +++ b/src/nofl-space.h @@ -1408,11 +1408,8 @@ nofl_space_should_evacuate(struct nofl_space *space, uint8_t metadata_byte, static inline int nofl_space_set_mark(struct nofl_space *space, uint8_t *metadata, uint8_t byte) { - // Clear logged bits when we mark: after marking, there will be no - // young objects. uint8_t mask = NOFL_METADATA_BYTE_YOUNG | NOFL_METADATA_BYTE_MARK_0 - | NOFL_METADATA_BYTE_MARK_1 | NOFL_METADATA_BYTE_MARK_2 - | NOFL_METADATA_BYTE_LOGGED_0 | NOFL_METADATA_BYTE_LOGGED_1; + | NOFL_METADATA_BYTE_MARK_1 | NOFL_METADATA_BYTE_MARK_2; atomic_store_explicit(metadata, (byte & ~mask) | space->marked_mask, memory_order_relaxed);