From 1fc8bb7142868bbeac5bcbbd489cd23347716203 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Mon, 30 Jun 2025 19:29:07 -0700 Subject: Fix: set num used blocks to 0 on clear --- mem/src/mem.c | 1 + mem/test/mem_test.c | 2 ++ 2 files changed, 3 insertions(+) (limited to 'mem') diff --git a/mem/src/mem.c b/mem/src/mem.c index c2af518..9169a9f 100644 --- a/mem/src/mem.c +++ b/mem/src/mem.c @@ -57,6 +57,7 @@ void mem_del_(Memory* mem) { void mem_clear_(Memory* mem) { assert(mem); + mem->num_used_blocks = 0; mem->next_free_chunk = 0; memset(mem->blocks, 0, mem->num_blocks * mem->block_size_bytes); memset(mem->chunks, 0, mem->num_blocks * sizeof(Chunk)); diff --git a/mem/test/mem_test.c b/mem/test/mem_test.c index 14718a5..88c8b14 100644 --- a/mem/test/mem_test.c +++ b/mem/test/mem_test.c @@ -220,6 +220,8 @@ TEST_CASE(mem_clear_then_reuse) { } mem_clear(&mem); + TEST_EQUAL(mem_size(&mem), 0); + TEST_EQUAL(mem_capacity(&mem), NUM_BLOCKS); // Allocate chunks and assign values 0..N. for (int i = 0; i < NUM_BLOCKS; ++i) { -- cgit v1.2.3