| ... | @@ -641,10 +641,13 @@ pub fn ArrayHashMapUnmanaged( | ... | @@ -641,10 +641,13 @@ pub fn ArrayHashMapUnmanaged( |
| 641 | return self; | 641 | return self; |
| 642 | } | 642 | } |
| 643 | | 643 | |
| | 644 | /// An empty `value_list` may be passed, in which case the values array becomes `undefined`. |
| 644 | pub fn reinit(self: *Self, gpa: Allocator, key_list: []const K, value_list: []const V) Oom!void { | 645 | pub fn reinit(self: *Self, gpa: Allocator, key_list: []const K, value_list: []const V) Oom!void { |
| 645 | try self.entries.resize(gpa, key_list.len); | 646 | try self.entries.resize(gpa, key_list.len); |
| 646 | @memcpy(self.keys(), key_list); | 647 | @memcpy(self.keys(), key_list); |
| 647 | if (@sizeOf(V) != 0) { | 648 | if (value_list.len == 0) { |
| | 649 | @memset(self.values(), undefined); |
| | 650 | } else { |
| 648 | assert(key_list.len == value_list.len); | 651 | assert(key_list.len == value_list.len); |
| 649 | @memcpy(self.values(), value_list); | 652 | @memcpy(self.values(), value_list); |
| 650 | } | 653 | } |