mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-08 13:10:19 +02:00
Fix bug in which empty block would not have mark bits cleared
This commit is contained in:
parent
ea15d142fc
commit
b6e9d3c0bb
1 changed files with 2 additions and 0 deletions
|
@ -2153,6 +2153,8 @@ static size_t next_hole(struct gc_mutator *mut) {
|
||||||
if (granules < GRANULES_PER_BLOCK)
|
if (granules < GRANULES_PER_BLOCK)
|
||||||
return granules;
|
return granules;
|
||||||
struct block_summary *summary = block_summary_for_addr(mut->block);
|
struct block_summary *summary = block_summary_for_addr(mut->block);
|
||||||
|
// Sweep mark bytes for completely empty block.
|
||||||
|
memset(metadata_byte_for_addr(mut->block), 0, GRANULES_PER_BLOCK);
|
||||||
block_summary_clear_flag(summary, BLOCK_NEEDS_SWEEP);
|
block_summary_clear_flag(summary, BLOCK_NEEDS_SWEEP);
|
||||||
// Sweeping found a completely empty block. If we are below the
|
// Sweeping found a completely empty block. If we are below the
|
||||||
// minimum evacuation reserve, take the block.
|
// minimum evacuation reserve, take the block.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue