aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2018-08-30 12:00:51 +0100
committergingerBill <bill@gingerbill.org>2018-08-30 12:00:51 +0100
commitc19ec5d65de84f70d87a20316b9c0278c149fb7c (patch)
tree6da971630dbbb8fe98ecfea81a8068c68f2254c7
parent15dca449c901cacf16da51459fc1d1dc861b9041 (diff)
Fix `delete` for dynamic array and map
-rw-r--r--core/mem/alloc.odin10
1 files changed, 5 insertions, 5 deletions
diff --git a/core/mem/alloc.odin b/core/mem/alloc.odin
index 00bfd904f..0814085f9 100644
--- a/core/mem/alloc.odin
+++ b/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);
}