Commit 272fc2df2e

Jakub Konka <kubkon@jakubkonka.com>
2024-02-07 23:25:15
macho: use preadAll to read in object files when emitting archive
1 parent 114518c
Changed files (1)
src
link
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);
 }