aboutsummaryrefslogtreecommitdiff
path: root/core/runtime
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2020-11-25 21:03:20 +0000
committergingerBill <bill@gingerbill.org>2020-11-25 21:03:20 +0000
commit8591655334fbeda0aacd02b3beb2cfca9ede0870 (patch)
tree73fb45f1e2b9f26049dd3dcef32b111c15078461 /core/runtime
parent70f5d7a1c99680f93eb81c6c67fb7d1a0b5cef5e (diff)
Clean up `__dynamic_map_rehash` behaviour
Diffstat (limited to 'core/runtime')
-rw-r--r--core/runtime/dynamic_map_internal.odin4
1 files 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);