diff options
| author | gingerBill <bill@gingerbill.org> | 2020-11-25 21:03:20 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2020-11-25 21:03:20 +0000 |
| commit | 8591655334fbeda0aacd02b3beb2cfca9ede0870 (patch) | |
| tree | 73fb45f1e2b9f26049dd3dcef32b111c15078461 /core/runtime | |
| parent | 70f5d7a1c99680f93eb81c6c67fb7d1a0b5cef5e (diff) | |
Clean up `__dynamic_map_rehash` behaviour
Diffstat (limited to 'core/runtime')
| -rw-r--r-- | core/runtime/dynamic_map_internal.odin | 4 |
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); |