浏览代码

Update `mem.nil_allocator` to match the same in `runtime`

gingerBill 3 年之前
父节点
当前提交
4484a3433d
共有 1 个文件被更改,包括 18 次插入1 次删除
  1. 18 1
      core/mem/allocators.odin

+ 18 - 1
core/mem/allocators.odin

@@ -6,7 +6,24 @@ import "core:runtime"
 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) {
-	return nil, nil
+	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
 }
 
 nil_allocator :: proc() -> Allocator {