From ec579aa0f372b2054ad659aaacd190c1a986d7f2 Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Sat, 31 May 2025 18:54:01 -0400 Subject: Legalize: implement scalarization of `@shuffle` --- lib/std/array_hash_map.zig | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'lib/std/array_hash_map.zig') diff --git a/lib/std/array_hash_map.zig b/lib/std/array_hash_map.zig index b0b9e19169..ac9c70df8e 100644 --- a/lib/std/array_hash_map.zig +++ b/lib/std/array_hash_map.zig @@ -889,19 +889,10 @@ pub fn ArrayHashMapUnmanaged( self.pointer_stability.lock(); defer self.pointer_stability.unlock(); - if (new_capacity <= linear_scan_max) { - try self.entries.ensureTotalCapacity(gpa, new_capacity); - return; - } - - if (self.index_header) |header| { - if (new_capacity <= header.capacity()) { - try self.entries.ensureTotalCapacity(gpa, new_capacity); - return; - } - } - try self.entries.ensureTotalCapacity(gpa, new_capacity); + if (new_capacity <= linear_scan_max) return; + if (self.index_header) |header| if (new_capacity <= header.capacity()) return; + const new_bit_index = try IndexHeader.findBitIndex(new_capacity); const new_header = try IndexHeader.alloc(gpa, new_bit_index); @@ -2116,7 +2107,7 @@ const IndexHeader = struct { fn findBitIndex(desired_capacity: usize) Allocator.Error!u8 { if (desired_capacity > max_capacity) return error.OutOfMemory; - var new_bit_index = @as(u8, @intCast(std.math.log2_int_ceil(usize, desired_capacity))); + var new_bit_index: u8 = @intCast(std.math.log2_int_ceil(usize, desired_capacity)); if (desired_capacity > index_capacities[new_bit_index]) new_bit_index += 1; if (new_bit_index < min_bit_index) new_bit_index = min_bit_index; assert(desired_capacity <= index_capacities[new_bit_index]); -- cgit v1.2.3