diff options
Diffstat (limited to 'core/runtime/default_allocators_nil.odin')
| -rw-r--r-- | core/runtime/default_allocators_nil.odin | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/core/runtime/default_allocators_nil.odin b/core/runtime/default_allocators_nil.odin index 5100bc517..ccb4a3381 100644 --- a/core/runtime/default_allocators_nil.odin +++ b/core/runtime/default_allocators_nil.odin @@ -1,17 +1,38 @@ -//+build freestanding package runtime -// mem.nil_allocator reimplementation - -default_allocator_proc :: proc(allocator_data: rawptr, mode: Allocator_Mode, +nil_allocator_proc :: proc(allocator_data: rawptr, mode: Allocator_Mode, size, alignment: int, old_memory: rawptr, old_size: int, loc := #caller_location) -> ([]byte, Allocator_Error) { + switch mode { + case .Alloc: + return nil, .Out_Of_Memory + case .Free: + return nil, .None + case .Free_All: + return nil, .Mode_Not_Implemented + case .Resize: + if size == 0 { + return nil, .None + } + return nil, .Out_Of_Memory + case .Query_Features: + return nil, .Mode_Not_Implemented + case .Query_Info: + return nil, .Mode_Not_Implemented + } return nil, .None } -default_allocator :: proc() -> Allocator { +nil_allocator :: proc() -> Allocator { return Allocator{ - procedure = default_allocator_proc, + procedure = nil_allocator_proc, data = nil, } } + + + +when ODIN_OS == "freestanding" { + default_allocator_proc :: nil_allocator_proc + default_allocator :: nil_allocator +}
\ No newline at end of file |