| ... | ... | @@ -621,15 +621,19 @@ pub fn ArrayHashMapUnmanaged( |
| 621 | 621 | |
| 622 | 622 | pub fn init(allocator: Allocator, key_list: []const K, value_list: []const V) !Self { |
| 623 | 623 | var self: Self = .{}; |
| 624 | errdefer self.deinit(allocator); |
| 625 | try self.reinit(allocator, key_list, value_list); |
| 626 | return self; |
| 627 | } |
| 628 | |
| 629 | pub fn reinit(self: *Self, allocator: Allocator, key_list: []const K, value_list: []const V) !void { |
| 624 | 630 | try self.entries.resize(allocator, key_list.len); |
| 625 | | errdefer self.entries.deinit(allocator); |
| 626 | 631 | @memcpy(self.keys(), key_list); |
| 627 | 632 | if (@sizeOf(V) != 0) { |
| 628 | 633 | assert(key_list.len == value_list.len); |
| 629 | 634 | @memcpy(self.values(), value_list); |
| 630 | 635 | } |
| 631 | 636 | try self.reIndex(allocator); |
| 632 | | return self; |
| 633 | 637 | } |
| 634 | 638 | |
| 635 | 639 | /// Frees the backing allocation and leaves the map in an undefined state. |