| ... | @@ -213,10 +213,11 @@ pub const ArSymtab = struct { | ... | @@ -213,10 +213,11 @@ pub const ArSymtab = struct { |
| 213 | } | 213 | } |
| 214 | | 214 | |
| 215 | pub fn write(ar: ArSymtab, format: Format, macho_file: *MachO, writer: anytype) !void { | 215 | pub fn write(ar: ArSymtab, format: Format, macho_file: *MachO, writer: anytype) !void { |
| | 216 | const ptr_width = ptrWidth(format); |
| 216 | // Header | 217 | // Header |
| 217 | try writeHeader(SYMDEF, ar.size(format), format, writer); | 218 | try writeHeader(SYMDEF, ar.size(format), format, writer); |
| 218 | // Symtab size | 219 | // Symtab size |
| 219 | try writeInt(format, ar.entries.items.len * 2, writer); | 220 | try writeInt(format, ar.entries.items.len * 2 * ptr_width, writer); |
| 220 | // Symtab entries | 221 | // Symtab entries |
| 221 | for (ar.entries.items) |entry| { | 222 | for (ar.entries.items) |entry| { |
| 222 | const file_off = switch (macho_file.getFile(entry.file).?) { | 223 | const file_off = switch (macho_file.getFile(entry.file).?) { |
| ... | @@ -230,7 +231,7 @@ pub const ArSymtab = struct { | ... | @@ -230,7 +231,7 @@ pub const ArSymtab = struct { |
| 230 | try writeInt(format, file_off, writer); | 231 | try writeInt(format, file_off, writer); |
| 231 | } | 232 | } |
| 232 | // Strtab size | 233 | // Strtab size |
| 233 | const strtab_size = mem.alignForward(u64, ar.strtab.buffer.items.len, ptrWidth(format)); | 234 | const strtab_size = mem.alignForward(u64, ar.strtab.buffer.items.len, ptr_width); |
| 234 | const padding = strtab_size - ar.strtab.buffer.items.len; | 235 | const padding = strtab_size - ar.strtab.buffer.items.len; |
| 235 | try writeInt(format, strtab_size, writer); | 236 | try writeInt(format, strtab_size, writer); |
| 236 | // Strtab | 237 | // Strtab |