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 | |