mirror of
https://github.com/ziglang/zig.git
synced 2025-12-30 10:03:21 +00:00
macho: cleanup extracting objects from archives
This commit is contained in:
parent
0b15ba8334
commit
2e30bf23aa
@ -2231,8 +2231,11 @@ fn resolveSymbols(self: *MachO) !void {
|
||||
|
||||
const object_id = @intCast(u16, self.objects.items.len);
|
||||
const object = try self.objects.addOne(self.base.allocator);
|
||||
object.* = try archive.extractObject(self.base.allocator, offsets.items[0]);
|
||||
try object.parse(self.base.allocator, self.base.options.target.cpu.arch);
|
||||
object.* = try archive.parseObject(
|
||||
self.base.allocator,
|
||||
self.base.options.target.cpu.arch,
|
||||
offsets.items[0],
|
||||
);
|
||||
try self.resolveSymbolsInObject(object_id);
|
||||
|
||||
continue :loop;
|
||||
|
||||
@ -215,8 +215,8 @@ fn parseTableOfContents(self: *Archive, allocator: *Allocator, reader: anytype)
|
||||
}
|
||||
}
|
||||
|
||||
pub fn extractObject(self: Archive, allocator: *Allocator, offset: u32) !Object {
|
||||
var reader = self.file.reader();
|
||||
pub fn parseObject(self: Archive, allocator: *Allocator, arch: Arch, offset: u32) !Object {
|
||||
const reader = self.file.reader();
|
||||
try reader.context.seekTo(offset + self.library_offset);
|
||||
|
||||
const object_header = try reader.readStruct(ar_hdr);
|
||||
@ -244,6 +244,7 @@ pub fn extractObject(self: Archive, allocator: *Allocator, offset: u32) !Object
|
||||
.mtime = try self.header.?.date(),
|
||||
};
|
||||
|
||||
try object.parse(allocator, arch);
|
||||
try reader.context.seekTo(0);
|
||||
|
||||
return object;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user