zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit c0d85cda53fd9ea056641d5e91cc8f736b34c0e7 (tree)
parent b01d6b156cf4d273be40a6e6288f4766f71f4a29
Author: Rui He <118280419+ruihe774@users.noreply.github.com>
Date:   Thu, 30 Jan 2025 23:42:15 +0800

std.fs.File: limit initial_cap according to max_bytes in readToEndAllocOptions


Diffstat:
Mlib/std/fs/File.zig | 2+-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/std/fs/File.zig b/lib/std/fs/File.zig @@ -1156,7 +1156,7 @@ pub fn readToEndAllocOptions( // The file size returned by stat is used as hint to set the buffer // size. If the reported size is zero, as it happens on Linux for files // in /proc, a small buffer is allocated instead. - const initial_cap = (if (size > 0) size else 1024) + @intFromBool(optional_sentinel != null); + const initial_cap = @min((if (size > 0) size else 1024), max_bytes) + @intFromBool(optional_sentinel != null); var array_list = try std.ArrayListAligned(u8, alignment).initCapacity(allocator, initial_cap); defer array_list.deinit();