From 1f93f6195805b39f698df124ad1e1495201624f2 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 16 Jul 2025 13:39:42 -0700 Subject: [PATCH] std.zig.readSourceFileToEndAlloc: add file size heuristic --- lib/std/zig.zig | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/std/zig.zig b/lib/std/zig.zig index fa45af129c..d113129b7e 100644 --- a/lib/std/zig.zig +++ b/lib/std/zig.zig @@ -534,6 +534,11 @@ pub fn readSourceFileToEndAlloc(gpa: Allocator, file_reader: *std.fs.File.Reader var buffer: std.ArrayListAlignedUnmanaged(u8, .@"2") = .empty; defer buffer.deinit(gpa); + if (file_reader.getSize()) |size| { + const casted_size = std.math.cast(u32, size) orelse return error.StreamTooLong; + try buffer.ensureTotalCapacityPrecise(gpa, casted_size); + } else |_| {} + try file_reader.interface.appendRemaining(gpa, .@"2", &buffer, .limited(max_src_size)); // Detect unsupported file types with their Byte Order Mark