diff --git a/src/gc/alloc_resources.c b/src/gc/alloc_resources.c
index 2740f34..b7eaeda 100644
a
|
b
|
|
454 | 454 | if (mem_pools->gc_sweep_block_level) |
455 | 455 | return; |
456 | 456 | |
| 457 | ++mem_pools->gc_sweep_block_level; |
| 458 | |
| 459 | /* We're collecting */ |
| 460 | mem_pools->mem_allocs_since_last_collect = 0; |
| 461 | mem_pools->header_allocs_since_last_collect = 0; |
457 | 462 | ++mem_pools->gc_collect_runs; |
458 | 463 | |
459 | 464 | /* Snag a block big enough for everything */ |
460 | 465 | total_size = pad_pool_size(pool); |
461 | 466 | |
462 | | if (total_size == 0) |
| 467 | if (total_size == 0) { |
| 468 | free_old_mem_blocks(mem_pools, pool, pool->top_block, total_size); |
| 469 | --mem_pools->gc_sweep_block_level; |
463 | 470 | return; |
464 | | |
465 | | ++mem_pools->gc_sweep_block_level; |
466 | | |
467 | | /* We're collecting */ |
468 | | mem_pools->mem_allocs_since_last_collect = 0; |
469 | | mem_pools->header_allocs_since_last_collect = 0; |
| 471 | } |
470 | 472 | |
471 | 473 | alloc_new_block(mem_pools, total_size, pool, "inside compact"); |
472 | 474 | |