Commit 5fa260ba06

mlugg <mlugg@mlugg.co.uk>
2023-09-19 23:44:31
InternPool: do not append sentinel value twice when initializing aggregate of u8
1 parent 759b0fe
Changed files (1)
src/InternPool.zig
@@ -5075,8 +5075,8 @@ pub fn get(ip: *InternPool, gpa: Allocator, key: Key) Allocator.Error!Index {
                 try ip.string_bytes.ensureUnusedCapacity(gpa, @as(usize, @intCast(len_including_sentinel + 1)));
                 try ip.extra.ensureUnusedCapacity(gpa, @typeInfo(Bytes).Struct.fields.len);
                 switch (aggregate.storage) {
-                    .bytes => |bytes| ip.string_bytes.appendSliceAssumeCapacity(bytes),
-                    .elems => |elems| for (elems) |elem| switch (ip.indexToKey(elem)) {
+                    .bytes => |bytes| ip.string_bytes.appendSliceAssumeCapacity(bytes[0..@intCast(len)]),
+                    .elems => |elems| for (elems[0..@intCast(len)]) |elem| switch (ip.indexToKey(elem)) {
                         .undef => {
                             ip.string_bytes.shrinkRetainingCapacity(string_bytes_index);
                             break :bytes;