From f32fc8a84864ea0c6e312e18822d985d5cddf401 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 1 May 2025 17:31:51 -0700 Subject: [PATCH] std.io.Reader.readRemainingArrayList: add minimum_buffer_size since some reader implementations may require it --- lib/std/io/Reader.zig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/std/io/Reader.zig b/lib/std/io/Reader.zig index 2416aa0c54..096fe72afe 100644 --- a/lib/std/io/Reader.zig +++ b/lib/std/io/Reader.zig @@ -186,7 +186,7 @@ pub const LimitedAllocError = Allocator.Error || ShortError || error{StreamTooLo pub fn readRemainingAlloc(r: Reader, gpa: Allocator, limit: Reader.Limit) LimitedAllocError![]u8 { var buffer: ArrayList(u8) = .empty; defer buffer.deinit(gpa); - try readRemainingArrayList(r, gpa, null, &buffer, limit); + try readRemainingArrayList(r, gpa, null, &buffer, limit, 1); return buffer.toOwnedSlice(gpa); } @@ -209,10 +209,11 @@ pub fn readRemainingArrayList( comptime alignment: ?std.mem.Alignment, list: *std.ArrayListAlignedUnmanaged(u8, alignment), limit: Limit, + minimum_buffer_size: usize, ) LimitedAllocError!void { var remaining = limit; while (true) { - try list.ensureUnusedCapacity(gpa, 1); + try list.ensureUnusedCapacity(gpa, minimum_buffer_size); const buffer = remaining.slice1(list.unusedCapacitySlice()); const n = r.vtable.readVec(r.context, &.{buffer}) catch |err| switch (err) { error.EndOfStream => return,