Glphkey.hash CityHash64 -> hash.int

pull/8536/head
Jesse Miller 2025-09-05 15:52:41 -06:00 committed by Mitchell Hashimoto
parent 8824256059
commit cf39d5c512
1 changed files with 5 additions and 1 deletions

View File

@ -332,11 +332,15 @@ const GlyphKey = struct {
const Context = struct {
pub fn hash(_: Context, key: GlyphKey) u64 {
// Packed is a u64 but std.hash.int improves uniformity and
// avoids collisions in our hashmap.
const packed_key = Packed.from(key);
return std.hash.CityHash64.hash(std.mem.asBytes(&packed_key));
return std.hash.int(@as(u64, @bitCast(packed_key)));
}
pub fn eql(_: Context, a: GlyphKey, b: GlyphKey) bool {
// Packed checks glyphs but in most cases the glyphs are NOT
// equal so the first check leads to increased throughput.
return a.glyph == b.glyph and Packed.from(a) == Packed.from(b);
}
};