commit 22b39f034b495176784f7ca295cf61c285958abe (tree)
parent 2cb6db22193acc802ff38f1cc4576ac1ee3f94fa
Author: Jakub Konka <kubkon@jakubkonka.com>
Date: Fri, 23 Dec 2022 14:35:45 +0100
macho+zld: properly deinit code signature object
Diffstat:
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/link/MachO.zig b/src/link/MachO.zig
@@ -574,11 +574,12 @@ pub fn flushModule(self: *MachO, comp: *Compilation, prog_node: *std.Progress.No
var codesig = CodeSignature.init(self.page_size);
codesig.code_directory.ident = self.base.options.emit.?.sub_path;
if (self.base.options.entitlements) |path| {
- try codesig.addEntitlements(arena, path);
+ try codesig.addEntitlements(self.base.allocator, path);
}
try self.writeCodeSignaturePadding(&codesig);
break :blk codesig;
} else null;
+ defer if (codesig) |*csig| csig.deinit(self.base.allocator);
// Write load commands
var lc_buffer = std.ArrayList(u8).init(arena);
diff --git a/src/link/MachO/zld.zig b/src/link/MachO/zld.zig
@@ -4115,11 +4115,12 @@ pub fn linkWithZld(macho_file: *MachO, comp: *Compilation, prog_node: *std.Progr
var codesig = CodeSignature.init(page_size);
codesig.code_directory.ident = fs.path.basename(full_out_path);
if (options.entitlements) |path| {
- try codesig.addEntitlements(arena, path);
+ try codesig.addEntitlements(zld.gpa, path);
}
try zld.writeCodeSignaturePadding(&codesig);
break :blk codesig;
} else null;
+ defer if (codesig) |*csig| csig.deinit(zld.gpa);
// Write load commands
var lc_buffer = std.ArrayList(u8).init(arena);