mirror of
https://github.com/odin-lang/Odin.git
synced 2025-12-28 08:54:35 +00:00
27 lines
580 B
Odin
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
|
|
}
|