From c2cda947c99293794f591036fd1bf5a099da5ceb Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Sun, 5 Nov 2023 09:29:34 -0500 Subject: [PATCH] src: fix memory leaks --- src/Module.zig | 2 +- src/Sema.zig | 1 + src/link/Elf.zig | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Module.zig b/src/Module.zig index 707ff41615..eda4624bd0 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -4120,7 +4120,7 @@ pub fn embedFile( } return error.ImportOutsideModulePath; }; - errdefer gpa.free(sub_file_path); + defer gpa.free(sub_file_path); return newEmbedFile(mod, cur_file.mod, sub_file_path, resolved_path, gop, src_loc); } diff --git a/src/Sema.zig b/src/Sema.zig index 4f557d33ac..2cd834862a 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -23488,6 +23488,7 @@ fn zirSelect(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstData) C if (b_val.isUndef(mod)) return mod.undefRef(vec_ty); const elems = try sema.gpa.alloc(InternPool.Index, vec_len); + defer sema.gpa.free(elems); for (elems, 0..) |*elem, i| { const pred_elem_val = try pred_val.elemValue(mod, i); const should_choose_a = pred_elem_val.toBool(); diff --git a/src/link/Elf.zig b/src/link/Elf.zig index ab986aeaf9..7311bd38b4 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -392,6 +392,7 @@ pub fn deinit(self: *Elf) void { self.copy_rel.deinit(gpa); self.rela_dyn.deinit(gpa); self.rela_plt.deinit(gpa); + self.zig_got.deinit(gpa); } pub fn getDeclVAddr(self: *Elf, decl_index: Module.Decl.Index, reloc_info: link.File.RelocInfo) !u64 {