From fa4fac9329ecab4c3b40864336c026aa4be444ee Mon Sep 17 00:00:00 2001 From: Logan Hodgson Date: Sun, 10 Aug 2025 09:56:43 -0700 Subject: [PATCH] deinit order reverse of init --- src/instance.zig | 20 ++++++++++---------- src/module.zig | 34 +++++++++++++++++----------------- src/store.zig | 16 ++++++++-------- 3 files changed, 35 insertions(+), 35 deletions(-) diff --git a/src/instance.zig b/src/instance.zig index 72f6908a..8c7d778b 100644 --- a/src/instance.zig +++ b/src/instance.zig @@ -77,16 +77,16 @@ pub const Instance = struct { } pub fn deinit(self: *Instance) void { - self.funcaddrs.deinit(); - self.memaddrs.deinit(); - self.tableaddrs.deinit(); - self.globaladdrs.deinit(); - self.elemaddrs.deinit(); - self.dataaddrs.deinit(); - - self.wasi_preopens.deinit(); - self.wasi_args.deinit(); - self.wasi_env.deinit(); + defer self.funcaddrs.deinit(); + defer self.memaddrs.deinit(); + defer self.tableaddrs.deinit(); + defer self.globaladdrs.deinit(); + defer self.elemaddrs.deinit(); + defer self.dataaddrs.deinit(); + + defer self.wasi_preopens.deinit(); + defer self.wasi_args.deinit(); + defer self.wasi_env.deinit(); } pub fn getFunc(self: *Instance, funcidx: usize) !Function { diff --git a/src/module.zig b/src/module.zig index 64c1095e..c6125343 100644 --- a/src/module.zig +++ b/src/module.zig @@ -61,23 +61,23 @@ pub const Module = struct { } pub fn deinit(self: *Module) void { - self.customs.deinit(); - self.types.deinit(); - self.imports.deinit(); - self.functions.deinit(); - self.tables.deinit(); - self.memories.deinit(); - self.globals.deinit(); - self.exports.deinit(); - self.elements.deinit(); - self.codes.deinit(); - self.datas.deinit(); - - self.element_init_offsets.deinit(); - self.parsed_code.deinit(); - self.local_types.deinit(); - self.br_table_indices.deinit(); - self.references.deinit(); + defer self.customs.deinit(); + defer self.types.deinit(); + defer self.imports.deinit(); + defer self.functions.deinit(); + defer self.tables.deinit(); + defer self.memories.deinit(); + defer self.globals.deinit(); + defer self.exports.deinit(); + defer self.elements.deinit(); + defer self.codes.deinit(); + defer self.datas.deinit(); + + defer self.element_init_offsets.deinit(); + defer self.parsed_code.deinit(); + defer self.local_types.deinit(); + defer self.br_table_indices.deinit(); + defer self.references.deinit(); } pub fn decode(self: *Module) !void { diff --git a/src/store.zig b/src/store.zig index 953b5d8d..d0fe7315 100644 --- a/src/store.zig +++ b/src/store.zig @@ -57,6 +57,14 @@ pub const ArrayListStore = struct { } pub fn deinit(self: *ArrayListStore) void { + defer self.functions.deinit(); + defer self.memories.deinit(); + defer self.tables.deinit(); + defer self.globals.deinit(); + defer self.elems.deinit(); + defer self.datas.deinit(); + defer self.imports.deinit(); + for (self.memories.items) |*m| { m.deinit(); } @@ -69,14 +77,6 @@ pub const ArrayListStore = struct { for (self.datas.items) |*d| { d.deinit(); } - - self.functions.deinit(); - self.memories.deinit(); - self.tables.deinit(); - self.globals.deinit(); - self.elems.deinit(); - self.datas.deinit(); - self.imports.deinit(); } // import