Files
Odin/vendor/libc/libc.odin
2025-08-08 13:42:48 +01:00

27 lines
580 B
Odin

package odin_libc
import "base:runtime"
import "core:mem"
@(private)
g_ctx: runtime.Context
@(private)
g_allocator: mem.Compat_Allocator
@(init)
init_context :: proc "contextless" () {
g_ctx = runtime.default_context()
context = g_ctx
// Wrapping the allocator with the mem.Compat_Allocator so we can
// mimic the realloc semantics.
mem.compat_allocator_init(&g_allocator, g_ctx.allocator)
g_ctx.allocator = mem.compat_allocator(&g_allocator)
}
// NOTE: the allocator must respect an `old_size` of `-1` on resizes!
set_context :: proc(ctx := context) {
g_ctx = ctx
}