Implement memory decommit

This commit is contained in:
2026-06-16 23:46:52 +02:00
parent 612b9f0e8a
commit 4a75eddd8f
3 changed files with 48 additions and 4 deletions
+33 -3
View File
@@ -162,6 +162,34 @@ static void arena_test_4(void)
arena_free(&arena);
}
static void arena_test_decommit(void)
{
TRACEF("\n");
U32 page_size = platform_page_size();
ArenaOptions arena_params = {};
U32 arena_size = MB(1) + MemoryBlock_Header_Size;
U32 commit_size = KB(64);
arena_params.size = arena_size;
arena_params.commit_size = commit_size;
Arena arena;
arena_init(&arena, &arena_params);
void *ptr = arena_push(&arena, commit_size * 10, 8);
MemoryZero(ptr, commit_size * 10);
arena_reset(&arena);
void *pre_ptr = arena_push(&arena, 5, 4);
ATemp tmp = arena_temp_begin(&arena);
ptr = arena_push(&arena, commit_size * 2 + 13, 8);
MemoryZero(ptr, commit_size * 2 + 13);
arena_temp_end(&tmp);
MemoryZero(pre_ptr, 5);
arena_free(&arena);
}
void miniarena_test1(void)
{
#define arena_size 4096
@@ -290,8 +318,10 @@ int main(int argc, char *argv[])
// arena_test_2();
// arena_test_3();
// arena_test_4();
// miniarena_test1();
apool_test();
apool_test_autogrow();
arena_test_decommit();
// miniarena_test1();
// apool_test();
// apool_test_autogrow();
}