From 272fc2df2e0ba79866ff56bacacece2f60dec10b Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Wed, 7 Feb 2024 23:25:15 +0100 Subject: [PATCH] macho: use preadAll to read in object files when emitting archive --- src/link/MachO/Object.zig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/link/MachO/Object.zig b/src/link/MachO/Object.zig index 8436a8b853..ad7ba1c240 100644 --- a/src/link/MachO/Object.zig +++ b/src/link/MachO/Object.zig @@ -1332,8 +1332,10 @@ pub fn writeAr(self: Object, ar_format: Archive.Format, macho_file: *MachO, writ const file = macho_file.getFileHandle(self.file_handle); // TODO try using copyRangeAll const gpa = macho_file.base.comp.gpa; - const data = try file.readToEndAlloc(gpa, size); + const data = try gpa.alloc(u8, size); defer gpa.free(data); + const amt = try file.preadAll(data, 0); + if (amt != size) return error.InputOutput; try writer.writeAll(data); }