diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-04-09 22:51:39 +0100 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2025-04-09 22:52:58 +0100 |
commit | 4218fa3a2c305b97d8be3d4448f1be1c41cc1143 (patch) | |
tree | ab58290d921363801b8e343e9c610b1fd047270d | |
parent | 1dd0f8835cea1ac6af0bf63eebdffdb4e66a0693 (diff) | |
download | prick-4218fa3a2c305b97d8be3d4448f1be1c41cc1143.tar.gz prick-4218fa3a2c305b97d8be3d4448f1be1c41cc1143.tar.bz2 prick-4218fa3a2c305b97d8be3d4448f1be1c41cc1143.zip |
Translate region_delete_rec while loop to for loop, minor edits
-rw-r--r-- | arena.h | 12 |
1 files changed, 5 insertions, 7 deletions
@@ -11,7 +11,7 @@ * Created: 2024-11-01 * Author: Aryadev Chavali - * Description: Arena allocator + * Description: Arena allocator. */ #ifndef ARENA_H @@ -160,12 +160,9 @@ uint8_t *region_alloc_rec(region_t *region, uint32_t capacity) void region_delete_rec(region_t *region) { - while (region) - { - region_t *next = region->next; - free(region); - region = next; - } + for (region_t *next = NULL; region; + next = region->next, free(region), region = next) + continue; } uint8_t *arena_alloc(arena_t *arena, uint32_t size) @@ -175,6 +172,7 @@ uint8_t *arena_alloc(arena_t *arena, uint32_t size) arena->beg = region_make(size, NULL); arena->end = arena->beg; } + uint8_t *start = region_alloc_rec(arena->beg, size); // if we've attached a new region, end needs to be at that region if (arena->end->next) |