31 lines
700 B
C
31 lines
700 B
C
#include "core_ctx.h"
|
|
#include "core_platform.h"
|
|
|
|
gb_thread thread_ctx_t *tcx;
|
|
|
|
fn void *ma_arena_alo_proc(alo_t alo, alokind_t kind, void *ptr, size_t size) {
|
|
unused(ptr);
|
|
if (kind == alokind_alloc) {
|
|
return ma_push_size(alo.object, size);
|
|
} else if (kind == alokind_dealloc) {
|
|
return NULL;
|
|
} else_is_invalid;
|
|
return NULL;
|
|
}
|
|
|
|
fn alo_t malo(ma_arena_t *arena) {
|
|
return (alo_t){arena, ma_arena_alo_proc};
|
|
}
|
|
|
|
fn alo_t malot(ma_temp_t temp) {
|
|
return malo(temp.arena);
|
|
}
|
|
|
|
fn void dealloc(alo_t alo, void *ptr) {
|
|
alo.proc(alo, alokind_dealloc, ptr, 0);
|
|
}
|
|
|
|
fn void *alloc_size(alo_t alo, size_t size) {
|
|
return alo.proc(alo, alokind_alloc, NULL, size);
|
|
}
|