diff options
Diffstat (limited to 'core')
| -rw-r--r-- | core/runtime/dynamic_map_internal.odin | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/core/runtime/dynamic_map_internal.odin b/core/runtime/dynamic_map_internal.odin index 4d4c51d6a..c7c074b84 100644 --- a/core/runtime/dynamic_map_internal.odin +++ b/core/runtime/dynamic_map_internal.odin @@ -128,11 +128,9 @@ default_hasher_string :: proc "contextless" (data: rawptr, seed: uintptr) -> uin } default_hasher_cstring :: proc "contextless" (data: rawptr, seed: uintptr) -> uintptr { h := u64(seed) + 0xcbf29ce484222325 - ptr := (^uintptr)(data)^ - for (^byte)(ptr)^ != 0 { - b := (^byte)(ptr)^ - h = (h ~ u64(b)) * 0x100000001b3 - ptr += 1 + b := (^[^]byte)(data)^ + if b != nil do for ; b[0] != 0; b = b[1:] { + h = (h ~ u64(b[0])) * 0x100000001b3 } return uintptr(h) } |