Commit 9c05810be6

David Gonzalez Martin <davidgm94.work@protonmail.com>
2023-07-25 07:49:44
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.
1 parent 516eb33
Changed files (1)
lib
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;
         }