Browse Source

Fix `delete` for dynamic array and map

gingerBill 7 years ago
parent
commit
c19ec5d65d
1 changed files with 5 additions and 5 deletions
  1. 5 5
      core/mem/alloc.odin

+ 5 - 5
core/mem/alloc.odin

@@ -53,16 +53,16 @@ delete_string :: proc(str: string, allocator := context.allocator, loc := #calle
 delete_cstring :: proc(str: cstring, allocator := context.allocator, loc := #caller_location) {
 	free((^byte)(str), allocator, loc);
 }
-delete_dynamic_array :: proc(array: $T/[dynamic]$E, allocator := context.allocator, loc := #caller_location) {
-	free(raw_data(array), allocator, loc);
+delete_dynamic_array :: proc(array: $T/[dynamic]$E, loc := #caller_location) {
+	free(raw_data(array), array.allocator, loc);
 }
 delete_slice :: proc(array: $T/[]$E, allocator := context.allocator, loc := #caller_location) {
 	free(raw_data(array), allocator, loc);
 }
-delete_map :: proc(m: $T/map[$K]$V, allocator := context.allocator, loc := #caller_location) {
+delete_map :: proc(m: $T/map[$K]$V, loc := #caller_location) {
 	raw := transmute(Raw_Map)m;
-	delete_dynamic_array(raw.hashes, allocator, loc);
-	free(raw.entries.data, allocator, loc);
+	delete_dynamic_array(raw.hashes, loc);
+	free(raw.entries.data, raw.entries.allocator, loc);
 }