commit 272fc2df2e0ba79866ff56bacacece2f60dec10b (tree)
parent 114518c6b0361fccef34a07d20c13f434bce1ef7
Author: Jakub Konka <kubkon@jakubkonka.com>
Date: Wed, 7 Feb 2024 23:25:15 +0100
macho: use preadAll to read in object files when emitting archive
Diffstat:
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git 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);
}