| author | |
| committer | |
| log | 2e30bf23aa4515682038bc69ffc0b7d06b734be9 |
| tree | 398094ba11df0ba0b771b705195766b541090619 |
| parent | 0b15ba8334bc03b59a975e579aac01a6b3fc2109 |
2 files changed, 8 insertions(+), 4 deletions(-)
src/link/MachO.zig+5-2| ... | ... | @@ -2231,8 +2231,11 @@ fn resolveSymbols(self: *MachO) !void { |
| 2231 | 2231 | |
| 2232 | 2232 | const object_id = @intCast(u16, self.objects.items.len); |
| 2233 | 2233 | const object = try self.objects.addOne(self.base.allocator); |
| 2234 | object.* = try archive.extractObject(self.base.allocator, offsets.items[0]); | |
| 2235 | try object.parse(self.base.allocator, self.base.options.target.cpu.arch); | |
| 2234 | object.* = try archive.parseObject( | |
| 2235 | self.base.allocator, | |
| 2236 | self.base.options.target.cpu.arch, | |
| 2237 | offsets.items[0], | |
| 2238 | ); | |
| 2236 | 2239 | try self.resolveSymbolsInObject(object_id); |
| 2237 | 2240 | |
| 2238 | 2241 | continue :loop; |
src/link/MachO/Archive.zig+3-2| ... | ... | @@ -215,8 +215,8 @@ fn parseTableOfContents(self: *Archive, allocator: *Allocator, reader: anytype) |
| 215 | 215 | } |
| 216 | 216 | } |
| 217 | 217 | |
| 218 | pub fn extractObject(self: Archive, allocator: *Allocator, offset: u32) !Object { | |
| 219 | var reader = self.file.reader(); | |
| 218 | pub fn parseObject(self: Archive, allocator: *Allocator, arch: Arch, offset: u32) !Object { | |
| 219 | const reader = self.file.reader(); | |
| 220 | 220 | try reader.context.seekTo(offset + self.library_offset); |
| 221 | 221 | |
| 222 | 222 | const object_header = try reader.readStruct(ar_hdr); |
| ... | ... | @@ -244,6 +244,7 @@ pub fn extractObject(self: Archive, allocator: *Allocator, offset: u32) !Object |
| 244 | 244 | .mtime = try self.header.?.date(), |
| 245 | 245 | }; |
| 246 | 246 | |
| 247 | try object.parse(allocator, arch); | |
| 247 | 248 | try reader.context.seekTo(0); |
| 248 | 249 | |
| 249 | 250 | return object; |