summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2025-04-09 22:51:39 +0100
committerAryadev Chavali <aryadev@aryadevchavali.com>2025-04-09 22:52:58 +0100
commit4218fa3a2c305b97d8be3d4448f1be1c41cc1143 (patch)
treeab58290d921363801b8e343e9c610b1fd047270d
parent1dd0f8835cea1ac6af0bf63eebdffdb4e66a0693 (diff)
downloadprick-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.h12
1 files changed, 5 insertions, 7 deletions
diff --git a/arena.h b/arena.h
index 01e027a..d68e86b 100644
--- a/arena.h
+++ b/arena.h
@@ -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)