mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
Don't clear log bits when marking
This happens in a post-pass.
This commit is contained in:
parent
6d48e12f78
commit
b4ea55b9c4
1 changed files with 1 additions and 4 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue