| author | |
| committer | |
| log | 5496901e713dc1a75de289d7e8e3c79e7fee9510 |
| tree | 269aa691017a66c9256f914b90308447a9a3a77c |
| parent | 093fe02b75a4a28f7faecea63ce2ae9639ef5b66 |
2 files changed, 5 insertions(+), 2 deletions(-)
lib/std/Build/Cache.zig+2-1| ... | ... | @@ -661,7 +661,8 @@ pub const Manifest = struct { |
| 661 | 661 | } { |
| 662 | 662 | const gpa = self.cache.gpa; |
| 663 | 663 | const input_file_count = self.files.entries.len; |
| 664 | var manifest_reader = self.manifest_file.?.reader(&.{}); // Reads positionally from zero. | |
| 664 | var tiny_buffer: [1]u8 = undefined; // allows allocRemaining to detect limit exceeded | |
| 665 | var manifest_reader = self.manifest_file.?.reader(&tiny_buffer); // Reads positionally from zero. | |
| 665 | 666 | const limit: std.io.Limit = .limited(manifest_file_size_max); |
| 666 | 667 | const file_contents = manifest_reader.interface.allocRemaining(gpa, limit) catch |err| switch (err) { |
| 667 | 668 | error.OutOfMemory => return error.OutOfMemory, |
lib/std/Io/Reader.zig+3-1| ... | ... | @@ -245,6 +245,7 @@ pub fn appendRemaining( |
| 245 | 245 | list: *std.ArrayListAlignedUnmanaged(u8, alignment), |
| 246 | 246 | limit: Limit, |
| 247 | 247 | ) LimitedAllocError!void { |
| 248 | assert(r.buffer.len != 0); // Needed to detect limit exceeded without losing data. | |
| 248 | 249 | const buffer = r.buffer; |
| 249 | 250 | const buffer_contents = buffer[r.seek..r.end]; |
| 250 | 251 | const copy_len = limit.minInt(buffer_contents.len); |
| ... | ... | @@ -1657,11 +1658,12 @@ test "readAlloc when the backing reader provides one byte at a time" { |
| 1657 | 1658 | } |
| 1658 | 1659 | }; |
| 1659 | 1660 | const str = "This is a test"; |
| 1661 | var tiny_buffer: [1]u8 = undefined; | |
| 1660 | 1662 | var one_byte_stream: OneByteReader = .{ |
| 1661 | 1663 | .str = str, |
| 1662 | 1664 | .i = 0, |
| 1663 | 1665 | .reader = .{ |
| 1664 | .buffer = &.{}, | |
| 1666 | .buffer = &tiny_buffer, | |
| 1665 | 1667 | .vtable = &.{ .stream = OneByteReader.stream }, |
| 1666 | 1668 | .seek = 0, |
| 1667 | 1669 | .end = 0, |