Explorar el Código

Add Source_Code_Location parameter Allocator_Proc (#138)

gingerBill hace 7 años
padre
commit
0ffcccdae5
Se han modificado 2 ficheros con 12 adiciones y 10 borrados
  1. 11 9
      core/_preload.odin
  2. 1 1
      core/mem.odin

+ 11 - 9
core/_preload.odin

@@ -141,6 +141,15 @@ __argv__: ^^u8;
 
 // IMPORTANT NOTE(bill): Must be in this order (as the compiler relies upon it)
 
+
+Source_Code_Location :: struct #ordered {
+	file_path:    string,
+	line, column: i64,
+	procedure:    string,
+}
+
+
+
 Allocator_Mode :: enum u8 {
 	Alloc,
 	Free,
@@ -151,7 +160,7 @@ Allocator_Mode :: enum u8 {
 
 Allocator_Proc :: #type proc(allocator_data: rawptr, mode: Allocator_Mode,
 	                         size, alignment: int,
-	                         old_memory: rawptr, old_size: int, flags: u64 = 0) -> rawptr;
+	                         old_memory: rawptr, old_size: int, flags: u64 = 0, location := #caller_location) -> rawptr;
 
 
 Allocator :: struct #ordered {
@@ -172,13 +181,6 @@ Context :: struct #ordered {
 
 DEFAULT_ALIGNMENT :: align_of([vector 4]f32);
 
-Source_Code_Location :: struct #ordered {
-	file_path:    string,
-	line, column: i64,
-	procedure:    string,
-}
-
-
 __INITIAL_MAP_CAP :: 16;
 
 __Map_Key :: struct #ordered {
@@ -576,7 +578,7 @@ default_resize_align :: proc(old_memory: rawptr, old_size, new_size, alignment:
 
 default_allocator_proc :: proc(allocator_data: rawptr, mode: Allocator_Mode,
                                size, alignment: int,
-                               old_memory: rawptr, old_size: int, flags: u64) -> rawptr {
+                               old_memory: rawptr, old_size: int, flags: u64, location := #caller_location) -> rawptr {
 	using Allocator_Mode;
 
 	switch mode {

+ 1 - 1
core/mem.odin

@@ -135,7 +135,7 @@ import "core:fmt.odin";
 
 arena_allocator_proc :: proc(allocator_data: rawptr, mode: Allocator_Mode,
                              size, alignment: int,
-                             old_memory: rawptr, old_size: int, flags: u64) -> rawptr {
+                             old_memory: rawptr, old_size: int, flags: u64, location := #caller_location) -> rawptr {
 	using Allocator_Mode;
 	arena := cast(^Arena)allocator_data;