std: general purpose allocator: use AutoHashMap

As pointed out by Sahnvour, AutoHashMap is both more convenient and will
have better performance in this case.
This commit is contained in:
Andrew Kelley 2020-08-08 15:59:03 -07:00
parent 5b57e35ce0
commit f98cffc615

View File

@ -189,7 +189,7 @@ pub fn GeneralPurposeAllocator(comptime config: Config) type {
std.debug.dumpStackTrace(stack_trace);
}
};
const LargeAllocTable = std.HashMapUnmanaged(usize, LargeAlloc, hash_addr, eql_addr, false);
const LargeAllocTable = std.AutoHashMapUnmanaged(usize, LargeAlloc);
// Bucket: In memory, in order:
// * BucketHeader
@ -609,17 +609,6 @@ const TraceKind = enum {
free,
};
fn hash_addr(addr: usize) u32 {
if (@sizeOf(usize) == @sizeOf(u32))
return addr;
comptime assert(@sizeOf(usize) == 8);
return @intCast(u32, addr >> 32) ^ @truncate(u32, addr);
}
fn eql_addr(a: usize, b: usize) bool {
return a == b;
}
const test_config = Config{};
test "small allocations - free in same order" {