| author | |
| committer | |
| log | 678e07b924a717e79f412b78895ead1136a722bc |
| tree | 7f624017a427d9394516ed0689fc4517090a3810 |
| parent | 639237c7b4655d7d4c38c24d9b36a145bbfb1e1c |
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 { | ... | @@ -1437,7 +1437,6 @@ fn parseArchive(self: *MachO, path: []const u8, force_load: bool) !bool { |
| 1437 | 1437 | ||
| 1438 | if (force_load) { | 1438 | if (force_load) { |
| 1439 | defer archive.deinit(gpa); | 1439 | defer archive.deinit(gpa); |
| 1440 | defer file.close(); | ||
| 1441 | // Get all offsets from the ToC | 1440 | // Get all offsets from the ToC |
| 1442 | var offsets = std.AutoArrayHashMap(u32, void).init(gpa); | 1441 | var offsets = std.AutoArrayHashMap(u32, void).init(gpa); |
| 1443 | defer offsets.deinit(); | 1442 | defer offsets.deinit(); |
| ... | @@ -3015,7 +3014,6 @@ pub fn deinit(self: *MachO) void { | ... | @@ -3015,7 +3014,6 @@ pub fn deinit(self: *MachO) void { |
| 3015 | } | 3014 | } |
| 3016 | 3015 | ||
| 3017 | if (self.d_sym) |*d_sym| { | 3016 | if (self.d_sym) |*d_sym| { |
| 3018 | d_sym.file.close(); | ||
| 3019 | d_sym.deinit(gpa); | 3017 | d_sym.deinit(gpa); |
| 3020 | } | 3018 | } |
| 3021 | 3019 | ||
| ... | @@ -3044,7 +3042,6 @@ pub fn deinit(self: *MachO) void { | ... | @@ -3044,7 +3042,6 @@ pub fn deinit(self: *MachO) void { |
| 3044 | self.objects.deinit(gpa); | 3042 | self.objects.deinit(gpa); |
| 3045 | 3043 | ||
| 3046 | for (self.archives.items) |*archive| { | 3044 | for (self.archives.items) |*archive| { |
| 3047 | archive.file.close(); | ||
| 3048 | archive.deinit(gpa); | 3045 | archive.deinit(gpa); |
| 3049 | } | 3046 | } |
| 3050 | self.archives.deinit(gpa); | 3047 | self.archives.deinit(gpa); |
src/link/MachO/Archive.zig+1| ... | @@ -88,6 +88,7 @@ const ar_hdr = extern struct { | ... | @@ -88,6 +88,7 @@ const ar_hdr = extern struct { |
| 88 | }; | 88 | }; |
| 89 | 89 | ||
| 90 | pub fn deinit(self: *Archive, allocator: Allocator) void { | 90 | pub fn deinit(self: *Archive, allocator: Allocator) void { |
| 91 | self.file.close(); | ||
| 91 | for (self.toc.keys()) |*key| { | 92 | for (self.toc.keys()) |*key| { |
| 92 | allocator.free(key.*); | 93 | allocator.free(key.*); |
| 93 | } | 94 | } |
src/link/MachO/DebugSymbols.zig+1| ... | @@ -306,6 +306,7 @@ pub fn flushModule(self: *DebugSymbols, allocator: Allocator, options: link.Opti | ... | @@ -306,6 +306,7 @@ pub fn flushModule(self: *DebugSymbols, allocator: Allocator, options: link.Opti |
| 306 | } | 306 | } |
| 307 | 307 | ||
| 308 | pub fn deinit(self: *DebugSymbols, allocator: Allocator) void { | 308 | pub fn deinit(self: *DebugSymbols, allocator: Allocator) void { |
| 309 | self.file.close(); | ||
| 309 | self.segments.deinit(allocator); | 310 | self.segments.deinit(allocator); |
| 310 | self.sections.deinit(allocator); | 311 | self.sections.deinit(allocator); |
| 311 | self.dwarf.deinit(); | 312 | self.dwarf.deinit(); |
src/link/Wasm.zig-2| ... | @@ -648,12 +648,10 @@ pub fn deinit(self: *Wasm) void { | ... | @@ -648,12 +648,10 @@ pub fn deinit(self: *Wasm) void { |
| 648 | gpa.free(segment_info.name); | 648 | gpa.free(segment_info.name); |
| 649 | } | 649 | } |
| 650 | for (self.objects.items) |*object| { | 650 | for (self.objects.items) |*object| { |
| 651 | object.file.?.close(); | ||
| 652 | object.deinit(gpa); | 651 | object.deinit(gpa); |
| 653 | } | 652 | } |
| 654 | 653 | ||
| 655 | for (self.archives.items) |*archive| { | 654 | for (self.archives.items) |*archive| { |
| 656 | archive.file.close(); | ||
| 657 | archive.deinit(gpa); | 655 | archive.deinit(gpa); |
| 658 | } | 656 | } |
| 659 | 657 |
src/link/Wasm/Archive.zig+1| ... | @@ -95,6 +95,7 @@ const ar_hdr = extern struct { | ... | @@ -95,6 +95,7 @@ const ar_hdr = extern struct { |
| 95 | }; | 95 | }; |
| 96 | 96 | ||
| 97 | pub fn deinit(archive: *Archive, allocator: Allocator) void { | 97 | pub fn deinit(archive: *Archive, allocator: Allocator) void { |
| 98 | archive.file.close(); | ||
| 98 | for (archive.toc.keys()) |*key| { | 99 | for (archive.toc.keys()) |*key| { |
| 99 | allocator.free(key.*); | 100 | allocator.free(key.*); |
| 100 | } | 101 | } |
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 | ... | @@ -141,6 +141,9 @@ pub fn create(gpa: Allocator, file: std.fs.File, name: []const u8, maybe_max_siz |
| 141 | /// Frees all memory of `Object` at once. The given `Allocator` must be | 141 | /// Frees all memory of `Object` at once. The given `Allocator` must be |
| 142 | /// the same allocator that was used when `init` was called. | 142 | /// the same allocator that was used when `init` was called. |
| 143 | pub fn deinit(self: *Object, gpa: Allocator) void { | 143 | pub fn deinit(self: *Object, gpa: Allocator) void { |
| 144 | if (self.file) |file| { | ||
| 145 | file.close(); | ||
| 146 | } | ||
| 144 | for (self.func_types) |func_ty| { | 147 | for (self.func_types) |func_ty| { |
| 145 | gpa.free(func_ty.params); | 148 | gpa.free(func_ty.params); |
| 146 | gpa.free(func_ty.returns); | 149 | gpa.free(func_ty.returns); |