default_allocators_nil.odin 883 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package runtime
  2. nil_allocator_proc :: proc(allocator_data: rawptr, mode: Allocator_Mode,
  3. size, alignment: int,
  4. old_memory: rawptr, old_size: int, loc := #caller_location) -> ([]byte, Allocator_Error) {
  5. switch mode {
  6. case .Alloc, .Alloc_Non_Zeroed:
  7. return nil, .Out_Of_Memory
  8. case .Free:
  9. return nil, .None
  10. case .Free_All:
  11. return nil, .Mode_Not_Implemented
  12. case .Resize:
  13. if size == 0 {
  14. return nil, .None
  15. }
  16. return nil, .Out_Of_Memory
  17. case .Query_Features:
  18. return nil, .Mode_Not_Implemented
  19. case .Query_Info:
  20. return nil, .Mode_Not_Implemented
  21. }
  22. return nil, .None
  23. }
  24. nil_allocator :: proc() -> Allocator {
  25. return Allocator{
  26. procedure = nil_allocator_proc,
  27. data = nil,
  28. }
  29. }
  30. when ODIN_OS == .Freestanding {
  31. default_allocator_proc :: nil_allocator_proc
  32. default_allocator :: nil_allocator
  33. }