From c19ec5d65de84f70d87a20316b9c0278c149fb7c Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 30 Aug 2018 12:00:51 +0100 Subject: [PATCH] Fix `delete` for dynamic array and map --- core/mem/alloc.odin | 10 +++++----- 1 file 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); }