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:
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),
),
};
},