aboutsummaryrefslogtreecommitdiff
path: root/src/link/MachO/Object.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/link/MachO/Object.zig')
-rw-r--r--src/link/MachO/Object.zig14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/link/MachO/Object.zig b/src/link/MachO/Object.zig
index 747adaab87..671199670f 100644
--- a/src/link/MachO/Object.zig
+++ b/src/link/MachO/Object.zig
@@ -247,18 +247,14 @@ pub fn parse(self: *Object) !void {
try reader.context.seekTo(offset);
}
- self.header = try reader.readStruct(macho.mach_header_64);
-
- if (self.header.?.filetype != macho.MH_OBJECT) {
- log.debug("invalid filetype: expected 0x{x}, found 0x{x}", .{
- macho.MH_OBJECT,
- self.header.?.filetype,
- });
+ const header = try reader.readStruct(macho.mach_header_64);
+ if (header.filetype != macho.MH_OBJECT) {
+ log.debug("invalid filetype: expected 0x{x}, found 0x{x}", .{ macho.MH_OBJECT, header.filetype });
return error.NotObject;
}
- const this_arch: Arch = switch (self.header.?.cputype) {
+ const this_arch: Arch = switch (header.cputype) {
macho.CPU_TYPE_ARM64 => .aarch64,
macho.CPU_TYPE_X86_64 => .x86_64,
else => |value| {
@@ -271,6 +267,8 @@ pub fn parse(self: *Object) !void {
return error.MismatchedCpuArchitecture;
}
+ self.header = header;
+
try self.readLoadCommands(reader);
try self.parseSymbols();
try self.parseSections();