aboutsummaryrefslogtreecommitdiff
path: root/lib/std/array_hash_map.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2024-12-18 18:24:55 -0800
committerAndrew Kelley <andrew@ziglang.org>2025-01-15 15:11:35 -0800
commit3cb00c5bcd3dec191bea0cbab9fcac77c0e3a910 (patch)
tree9d3bf361362bd1c20dbf6277679acc2fca761025 /lib/std/array_hash_map.zig
parent91efc5c98bb32f3b1d42895362d5ae5a175a1345 (diff)
downloadzig-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.zig5
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);
}