authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2020-11-11 14:05:43+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2020-11-11 14:05:43+02:00
logae6f3291c0e6a3f66250072d2ec648277cddfdda
treea80f4cc34efb915813b22e26e80039c75b9ae0a0
parentf70160f89c20fe46d0a1f323121195d6dfb7ca16
signaturelock-open Commit is signed but in an unrecognized format.

std: fix HashMap.clearRetainingCapacity


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

lib/std/hash_map.zig+6-1
...@@ -428,7 +428,7 @@ pub fn HashMapUnmanaged(...@@ -428,7 +428,7 @@ pub fn HashMapUnmanaged(
428 if (self.metadata) |_| {428 if (self.metadata) |_| {
429 self.initMetadatas();429 self.initMetadatas();
430 self.size = 0;430 self.size = 0;
431 self.available = 0;431 self.available = @truncate(u32, (self.capacity() * MaxLoadPercentage) / 100);
432 }432 }
433 }433 }
434434
...@@ -864,6 +864,11 @@ test "std.hash_map clearRetainingCapacity" {...@@ -864,6 +864,11 @@ test "std.hash_map clearRetainingCapacity" {
864 expectEqual(map.get(1).?, 1);864 expectEqual(map.get(1).?, 1);
865 expectEqual(map.count(), 1);865 expectEqual(map.count(), 1);
866866
867 map.clearRetainingCapacity();
868 map.putAssumeCapacity(1, 1);
869 expectEqual(map.get(1).?, 1);
870 expectEqual(map.count(), 1);
871
867 const cap = map.capacity();872 const cap = map.capacity();
868 expect(cap > 0);873 expect(cap > 0);
869874