Commit 1aec406311

Vexu <git@vexu.eu>
2020-11-11 13:05:43
std: fix HashMap.clearRetainingCapacity
1 parent b6350a2
Changed files (1)
lib
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);