From 199e0c8ffed87761763f2459550bcf591bce22d8 Mon Sep 17 00:00:00 2001 From: David Gonzalez Martin Date: Mon, 24 Jul 2023 23:49:44 -0600 Subject: [PATCH] debug: expose module debug info deinitialization Before this commit, you could use readElfDebugInfo independently with one catch: the data is not freed since the deinitialization functions for ModuleDebugInfo are private. This change makes them public so the users of such function and similar can free the memory after the debug symbols have been used. --- lib/std/debug.zig | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/std/debug.zig b/lib/std/debug.zig index ddd0f0ec95dd0270617995c4af7af534c913b2c6..52b5d2c19cb653699f197046b13ba0277a2e0271 100644 --- a/lib/std/debug.zig +++ b/lib/std/debug.zig @@ -1949,7 +1949,7 @@ pub const ModuleDebugInfo = switch (native_os) { addr_table: std.StringHashMap(u64), }; - fn deinit(self: *@This(), allocator: mem.Allocator) void { + pub fn deinit(self: *@This(), allocator: mem.Allocator) void { var it = self.ofiles.iterator(); while (it.next()) |entry| { const ofile = entry.value_ptr; @@ -2148,7 +2148,7 @@ pub const ModuleDebugInfo = switch (native_os) { /// Only used if debug_data is .pdb coff_section_headers: []coff.SectionHeader, - fn deinit(self: *@This(), allocator: mem.Allocator) void { + pub fn deinit(self: *@This(), allocator: mem.Allocator) void { self.debug_data.deinit(allocator); if (self.debug_data == .pdb) { allocator.free(self.coff_section_headers); @@ -2221,7 +2221,7 @@ pub const ModuleDebugInfo = switch (native_os) { mapped_memory: []align(mem.page_size) const u8, external_mapped_memory: ?[]align(mem.page_size) const u8, - fn deinit(self: *@This(), allocator: mem.Allocator) void { + pub fn deinit(self: *@This(), allocator: mem.Allocator) void { self.dwarf.deinit(allocator); os.munmap(self.mapped_memory); if (self.external_mapped_memory) |m| os.munmap(m); @@ -2240,7 +2240,7 @@ pub const ModuleDebugInfo = switch (native_os) { } }, .wasi => struct { - fn deinit(self: *@This(), allocator: mem.Allocator) void { + pub fn deinit(self: *@This(), allocator: mem.Allocator) void { _ = self; _ = allocator; } -- 2.54.0