From 1b702f8ddb11d53b53de8350323fd14b85d58caf Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 8 Apr 2021 20:52:02 -0700 Subject: stage2: fix the memory leaks --- src/Module.zig | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/Module.zig') diff --git a/src/Module.zig b/src/Module.zig index 8da9a6dbdc..af3a04fe98 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -2292,6 +2292,20 @@ pub const InnerError = error{ OutOfMemory, AnalysisFail }; pub fn deinit(mod: *Module) void { const gpa = mod.gpa; + // The callsite of `Compilation.create` owns the `root_pkg`, however + // Module owns the builtin and std packages that it adds. + if (mod.root_pkg.table.remove("builtin")) |entry| { + gpa.free(entry.key); + entry.value.destroy(gpa); + } + if (mod.root_pkg.table.remove("std")) |entry| { + gpa.free(entry.key); + entry.value.destroy(gpa); + } + if (mod.root_pkg.table.remove("root")) |entry| { + gpa.free(entry.key); + } + mod.compile_log_text.deinit(gpa); mod.zig_cache_artifact_directory.handle.close(); -- cgit v1.2.3