diff --git a/src/link/MachO/Atom.zig b/src/link/MachO/Atom.zig index 1473c682acb6dfb62bb09515f3094579f13764d2..8a47a30264b1b2045c9b8c78f5d0398a4dc75c70 100644 --- a/src/link/MachO/Atom.zig +++ b/src/link/MachO/Atom.zig @@ -42,7 +42,6 @@ extra: u32 = 0, pub fn getName(self: Atom, macho_file: *MachO) [:0]const u8 { return switch (self.getFile(macho_file)) { .dylib => unreachable, - .zig_object => |x| x.strtab.buffer.items[self.name.pos..][0 .. self.name.len - 1 :0], inline else => |x| x.getString(self.name), }; } diff --git a/src/link/MachO/Symbol.zig b/src/link/MachO/Symbol.zig index 80a9ddbce248f4827adf4c4640fa292095a59a6c..6e5af75fc24665363bca1705a4b94059f5a8ae6f 100644 --- a/src/link/MachO/Symbol.zig +++ b/src/link/MachO/Symbol.zig @@ -57,7 +57,6 @@ pub fn weakRef(symbol: Symbol, macho_file: *MachO) bool { pub fn getName(symbol: Symbol, macho_file: *MachO) [:0]const u8 { return switch (symbol.getFile(macho_file).?) { - .zig_object => |x| x.strtab.buffer.items[symbol.name.pos..][0 .. symbol.name.len - 1 :0], inline else => |x| x.getString(symbol.name), }; } diff --git a/src/link/MachO/ZigObject.zig b/src/link/MachO/ZigObject.zig index 6a119a838f255397045216eacdc01c1aa0539189..4e939008a590c1a4d5502b6b758203da856fafa3 100644 --- a/src/link/MachO/ZigObject.zig +++ b/src/link/MachO/ZigObject.zig @@ -1767,6 +1767,11 @@ fn addString(self: *ZigObject, allocator: Allocator, string: []const u8) !MachO. return .{ .pos = off, .len = @intCast(string.len + 1) }; } +pub fn getString(self: ZigObject, string: MachO.String) [:0]const u8 { + if (string.len == 0) return ""; + return self.strtab.buffer.items[string.pos..][0 .. string.len - 1 :0]; +} + pub fn asFile(self: *ZigObject) File { return .{ .zig_object = self }; }