Ensure arena is freed when initialisation fails
This commit is contained in:
parent
1094a9fefb
commit
7948d3fd1a
@ -49,12 +49,14 @@ bool mem_arena_init(Arena **arena, u64 base_capacity) {
|
|||||||
|
|
||||||
arena_ptr->active_arena = (BaseArena *)malloc(sizeof(BaseArena));
|
arena_ptr->active_arena = (BaseArena *)malloc(sizeof(BaseArena));
|
||||||
if (!(arena_ptr->active_arena)) {
|
if (!(arena_ptr->active_arena)) {
|
||||||
|
mem_arena_free(arena);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(arena_ptr->active_arena, 0, sizeof(BaseArena));
|
memset(arena_ptr->active_arena, 0, sizeof(BaseArena));
|
||||||
|
|
||||||
if (!base_arena_init(arena_ptr->active_arena, base_capacity)) {
|
if (!base_arena_init(arena_ptr->active_arena, base_capacity)) {
|
||||||
|
mem_arena_free(arena);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user