authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-09-07 19:16:30+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-09-07 22:42:59+02:00
log678e07b924a717e79f412b78895ead1136a722bc
tree7f624017a427d9394516ed0689fc4517090a3810
parent639237c7b4655d7d4c38c24d9b36a145bbfb1e1c

macho+wasm: unify and clean up closing file handles


6 files changed, 6 insertions(+), 5 deletions(-)

src/link/MachO.zig-3
......@@ -1437,7 +1437,6 @@ fn parseArchive(self: *MachO, path: []const u8, force_load: bool) !bool {
14371437
14381438 if (force_load) {
14391439 defer archive.deinit(gpa);
1440 defer file.close();
14411440 // Get all offsets from the ToC
14421441 var offsets = std.AutoArrayHashMap(u32, void).init(gpa);
14431442 defer offsets.deinit();
......@@ -3015,7 +3014,6 @@ pub fn deinit(self: *MachO) void {
30153014 }
30163015
30173016 if (self.d_sym) |*d_sym| {
3018 d_sym.file.close();
30193017 d_sym.deinit(gpa);
30203018 }
30213019
......@@ -3044,7 +3042,6 @@ pub fn deinit(self: *MachO) void {
30443042 self.objects.deinit(gpa);
30453043
30463044 for (self.archives.items) |*archive| {
3047 archive.file.close();
30483045 archive.deinit(gpa);
30493046 }
30503047 self.archives.deinit(gpa);
src/link/MachO/Archive.zig+1
......@@ -88,6 +88,7 @@ const ar_hdr = extern struct {
8888};
8989
9090pub fn deinit(self: *Archive, allocator: Allocator) void {
91 self.file.close();
9192 for (self.toc.keys()) |*key| {
9293 allocator.free(key.*);
9394 }
src/link/MachO/DebugSymbols.zig+1
......@@ -306,6 +306,7 @@ pub fn flushModule(self: *DebugSymbols, allocator: Allocator, options: link.Opti
306306}
307307
308308pub fn deinit(self: *DebugSymbols, allocator: Allocator) void {
309 self.file.close();
309310 self.segments.deinit(allocator);
310311 self.sections.deinit(allocator);
311312 self.dwarf.deinit();
src/link/Wasm.zig-2
......@@ -648,12 +648,10 @@ pub fn deinit(self: *Wasm) void {
648648 gpa.free(segment_info.name);
649649 }
650650 for (self.objects.items) |*object| {
651 object.file.?.close();
652651 object.deinit(gpa);
653652 }
654653
655654 for (self.archives.items) |*archive| {
656 archive.file.close();
657655 archive.deinit(gpa);
658656 }
659657
src/link/Wasm/Archive.zig+1
......@@ -95,6 +95,7 @@ const ar_hdr = extern struct {
9595};
9696
9797pub fn deinit(archive: *Archive, allocator: Allocator) void {
98 archive.file.close();
9899 for (archive.toc.keys()) |*key| {
99100 allocator.free(key.*);
100101 }
src/link/Wasm/Object.zig+3
......@@ -141,6 +141,9 @@ pub fn create(gpa: Allocator, file: std.fs.File, name: []const u8, maybe_max_siz
141141/// Frees all memory of `Object` at once. The given `Allocator` must be
142142/// the same allocator that was used when `init` was called.
143143pub fn deinit(self: *Object, gpa: Allocator) void {
144 if (self.file) |file| {
145 file.close();
146 }
144147 for (self.func_types) |func_ty| {
145148 gpa.free(func_ty.params);
146149 gpa.free(func_ty.returns);