Switch to using calloc instead of malloc
This commit is contained in:
parent
feada0b31c
commit
49ce26a6c2
@ -15,15 +15,13 @@ struct dstr {
|
|||||||
};
|
};
|
||||||
|
|
||||||
String *wapp_dstr_with_capacity(u64 capacity) {
|
String *wapp_dstr_with_capacity(u64 capacity) {
|
||||||
String *out = (String *)malloc(sizeof(String) + capacity + 1);
|
String *out = (String *)calloc(1, sizeof(String) + capacity + 1);
|
||||||
|
|
||||||
if (!out) {
|
if (!out) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
out->capacity = capacity;
|
out->capacity = capacity;
|
||||||
out->size = 0;
|
out->size = 0;
|
||||||
memset(out->buf, 0, capacity + 1);
|
|
||||||
|
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
@ -39,22 +39,18 @@ bool wapp_mem_arena_init(Arena **arena, u64 base_capacity) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
*arena = (Arena *)malloc(sizeof(Arena));
|
*arena = (Arena *)calloc(1, sizeof(Arena));
|
||||||
Arena *arena_ptr = *arena;
|
Arena *arena_ptr = *arena;
|
||||||
if (!arena_ptr) {
|
if (!arena_ptr) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(arena_ptr, 0, sizeof(Arena));
|
arena_ptr->active_arena = (BaseArena *)calloc(1, sizeof(BaseArena));
|
||||||
|
|
||||||
arena_ptr->active_arena = (BaseArena *)malloc(sizeof(BaseArena));
|
|
||||||
if (!(arena_ptr->active_arena)) {
|
if (!(arena_ptr->active_arena)) {
|
||||||
wapp_mem_arena_free(arena);
|
wapp_mem_arena_free(arena);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
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)) {
|
||||||
wapp_mem_arena_free(arena);
|
wapp_mem_arena_free(arena);
|
||||||
return false;
|
return false;
|
||||||
@ -80,13 +76,11 @@ void *wapp_mem_arena_alloc_aligned(Arena *arena, u64 size, u64 alignment) {
|
|||||||
if (arena->active_arena->next) {
|
if (arena->active_arena->next) {
|
||||||
arena->active_arena = arena->active_arena->next;
|
arena->active_arena = arena->active_arena->next;
|
||||||
} else {
|
} else {
|
||||||
arena->active_arena->next = (BaseArena *)malloc(sizeof(BaseArena));
|
arena->active_arena->next = (BaseArena *)calloc(1, sizeof(BaseArena));
|
||||||
if (!(arena->active_arena->next)) {
|
if (!(arena->active_arena->next)) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(arena->active_arena->next, 0, sizeof(BaseArena));
|
|
||||||
|
|
||||||
if (!base_arena_init(arena->active_arena->next,
|
if (!base_arena_init(arena->active_arena->next,
|
||||||
arena->initial_capacity)) {
|
arena->initial_capacity)) {
|
||||||
free(arena->active_arena->next);
|
free(arena->active_arena->next);
|
||||||
@ -180,14 +174,11 @@ internal bool base_arena_init(BaseArena *arena, u64 capacity) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
u64 alloc_size = sizeof(u8) * capacity;
|
arena->buf = (u8 *)calloc(capacity, sizeof(u8));
|
||||||
|
|
||||||
arena->buf = (u8 *)malloc(alloc_size);
|
|
||||||
if (!(arena->buf)) {
|
if (!(arena->buf)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(arena->buf, 0, alloc_size);
|
|
||||||
arena->capacity = capacity;
|
arena->capacity = capacity;
|
||||||
arena->offset = arena->buf;
|
arena->offset = arena->buf;
|
||||||
arena->prev = arena->next = NULL;
|
arena->prev = arena->next = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user