authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-08-06 19:09:22-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-08-06 19:09:22-04:00
log97be8debabcebf3102156a6df09f5acf4e0d8f6a
tree703844ba611da80ea58b19520974b046a3362309
parent2680f9ab48e041108a29271f55a69d9f869461b9

std.HashMap.autoHash: use xor instead of wrapping mult


1 files changed, 2 insertions(+), 2 deletions(-)

std/hash_map.zig+2-2
...@@ -441,9 +441,9 @@ pub fn autoHash(key: var, comptime rng: *std.rand.Random, comptime HashInt: type...@@ -441,9 +441,9 @@ pub fn autoHash(key: var, comptime rng: *std.rand.Random, comptime HashInt: type
441 builtin.TypeId.Int => |info| {441 builtin.TypeId.Int => |info| {
442 const unsigned_x = @bitCast(@IntType(false, info.bits), key);442 const unsigned_x = @bitCast(@IntType(false, info.bits), key);
443 if (info.bits <= HashInt.bit_count) {443 if (info.bits <= HashInt.bit_count) {
444 return HashInt(unsigned_x) *% comptime rng.scalar(HashInt);444 return HashInt(unsigned_x) ^ comptime rng.scalar(HashInt);
445 } else {445 } else {
446 return @truncate(HashInt, unsigned_x *% comptime rng.scalar(@typeOf(unsigned_x)));446 return @truncate(HashInt, unsigned_x ^ comptime rng.scalar(@typeOf(unsigned_x)));
447 }447 }
448 },448 },
449449