diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2025-05-31 18:54:01 -0400 |
|---|---|---|
| committer | mlugg <mlugg@mlugg.co.uk> | 2025-06-01 08:24:01 +0100 |
| commit | ec579aa0f372b2054ad659aaacd190c1a986d7f2 (patch) | |
| tree | 193cca8db61e7885b94639e18319b4d98e586552 /lib/std/array_hash_map.zig | |
| parent | add2976a9ba76ec661ae5668eb2a8dca2ccfad42 (diff) | |
| download | zig-ec579aa0f372b2054ad659aaacd190c1a986d7f2.tar.gz zig-ec579aa0f372b2054ad659aaacd190c1a986d7f2.zip | |
Legalize: implement scalarization of `@shuffle`
Diffstat (limited to 'lib/std/array_hash_map.zig')
| -rw-r--r-- | lib/std/array_hash_map.zig | 17 |
1 files changed, 4 insertions, 13 deletions
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]); |
