diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2024-12-18 18:24:55 -0800 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2025-01-15 15:11:35 -0800 |
| commit | 3cb00c5bcd3dec191bea0cbab9fcac77c0e3a910 (patch) | |
| tree | 9d3bf361362bd1c20dbf6277679acc2fca761025 /lib/std/array_hash_map.zig | |
| parent | 91efc5c98bb32f3b1d42895362d5ae5a175a1345 (diff) | |
| download | zig-3cb00c5bcd3dec191bea0cbab9fcac77c0e3a910.tar.gz zig-3cb00c5bcd3dec191bea0cbab9fcac77c0e3a910.zip | |
std.ArrayHashMap: allow passing empty values array
in which case the values array is set to undefined
Diffstat (limited to 'lib/std/array_hash_map.zig')
| -rw-r--r-- | lib/std/array_hash_map.zig | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/std/array_hash_map.zig b/lib/std/array_hash_map.zig index 4e18aecf9d..22c736d0a5 100644 --- a/lib/std/array_hash_map.zig +++ b/lib/std/array_hash_map.zig @@ -641,10 +641,13 @@ pub fn ArrayHashMapUnmanaged( return self; } + /// An empty `value_list` may be passed, in which case the values array becomes `undefined`. pub fn reinit(self: *Self, gpa: Allocator, key_list: []const K, value_list: []const V) Oom!void { try self.entries.resize(gpa, key_list.len); @memcpy(self.keys(), key_list); - if (@sizeOf(V) != 0) { + if (value_list.len == 0) { + @memset(self.values(), undefined); + } else { assert(key_list.len == value_list.len); @memcpy(self.values(), value_list); } |
