From ae6f3291c0e6a3f66250072d2ec648277cddfdda Mon Sep 17 00:00:00 2001 From: Vexu Date: Wed, 11 Nov 2020 14:05:43 +0200 Subject: [PATCH] std: fix HashMap.clearRetainingCapacity --- lib/std/hash_map.zig | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/std/hash_map.zig b/lib/std/hash_map.zig index 8454bf8fc6..08f3400d7f 100644 --- a/lib/std/hash_map.zig +++ b/lib/std/hash_map.zig @@ -428,7 +428,7 @@ pub fn HashMapUnmanaged( if (self.metadata) |_| { self.initMetadatas(); self.size = 0; - self.available = 0; + self.available = @truncate(u32, (self.capacity() * MaxLoadPercentage) / 100); } } @@ -864,6 +864,11 @@ test "std.hash_map clearRetainingCapacity" { expectEqual(map.get(1).?, 1); expectEqual(map.count(), 1); + map.clearRetainingCapacity(); + map.putAssumeCapacity(1, 1); + expectEqual(map.get(1).?, 1); + expectEqual(map.count(), 1); + const cap = map.capacity(); expect(cap > 0);