zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit bd1f96869e8a3cf31688c16cd0baffb65119d5eb (tree)
parent 328ec15d9cae0373c1f973699c392db5b63ab886
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Thu, 19 Oct 2023 14:17:03 -0700

InternPool: fix incomplete hash of pointer values

There is this `common` prefix which was not getting passed in all union
tags of pointer vals, resumably making InternPool slower for pointer
values.

Diffstat:
Msrc/InternPool.zig | 6+++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/InternPool.zig b/src/InternPool.zig @@ -1228,7 +1228,7 @@ pub const Key = union(enum) { .mut_decl => |x| Hash.hash( seed2, - asBytes(&x.decl) ++ asBytes(&x.runtime_index), + common ++ asBytes(&x.decl) ++ asBytes(&x.runtime_index), ), .anon_decl, @@ -1236,11 +1236,11 @@ pub const Key = union(enum) { .eu_payload, .opt_payload, .comptime_field, - => |int| Hash.hash(seed2, asBytes(&int)), + => |int| Hash.hash(seed2, common ++ asBytes(&int)), .elem, .field => |x| Hash.hash( seed2, - asBytes(&x.base) ++ asBytes(&x.index), + common ++ asBytes(&x.base) ++ asBytes(&x.index), ), }; },