From 8591655334fbeda0aacd02b3beb2cfca9ede0870 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 25 Nov 2020 21:03:20 +0000 Subject: [PATCH] Clean up `__dynamic_map_rehash` behaviour --- core/runtime/dynamic_map_internal.odin | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/runtime/dynamic_map_internal.odin b/core/runtime/dynamic_map_internal.odin index 051d4073d..cb6be60f9 100644 --- a/core/runtime/dynamic_map_internal.odin +++ b/core/runtime/dynamic_map_internal.odin @@ -175,7 +175,6 @@ __dynamic_map_rehash :: proc(using header: Map_Header, new_count: int, loc := #c } entry_header := __dynamic_map_get_entry(header, i); - data := uintptr(entry_header); fr := __dynamic_map_find(new_header, entry_header.hash); j := __dynamic_map_add_entry(new_header, entry_header.hash, loc); @@ -187,8 +186,9 @@ __dynamic_map_rehash :: proc(using header: Map_Header, new_count: int, loc := #c } e := __dynamic_map_get_entry(new_header, j); + mem_copy(e, entry_header, entry_size); e.next = fr.entry_index; - mem_copy(rawptr(uintptr(e)+value_offset), rawptr(data+value_offset), value_size); + e.hash.key_ptr = rawptr(uintptr(entry_header) + key_offset); if __dynamic_map_full(new_header) { __dynamic_map_grow(new_header, loc);