diff options
Diffstat (limited to 'src/Module.zig')
| -rw-r--r-- | src/Module.zig | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/Module.zig b/src/Module.zig index 69097f4aba..46628de651 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -76,7 +76,7 @@ global_error_set: std.StringHashMapUnmanaged(u16) = .{}, generation: u32 = 0, /// Keys are fully qualified paths -import_table: std.StringHashMapUnmanaged(*Scope.File) = .{}, +import_table: std.StringArrayHashMapUnmanaged(*Scope.File) = .{}, stage1_flags: packed struct { have_winmain: bool = false, @@ -541,6 +541,7 @@ pub const Scope = struct { self.decls.deinit(gpa); // TODO either Container of File should have an arena for sub_file_path and ty gpa.destroy(self.ty.cast(Type.Payload.EmptyStruct).?); + gpa.free(self.file_scope.sub_file_path); self.* = undefined; } @@ -857,6 +858,11 @@ pub fn deinit(self: *Module) void { gpa.free(entry.key); } self.global_error_set.deinit(gpa); + + for (self.import_table.items()) |entry| { + entry.value.base.destroy(gpa); + } + self.import_table.deinit(gpa); } fn freeExportList(gpa: *Allocator, export_list: []*Export) void { |
