From 9e03cf948948ea25feb3f413f234e98e71d55786 Mon Sep 17 00:00:00 2001 From: Luuk de Gram Date: Sun, 5 Dec 2021 12:34:50 +0100 Subject: wasm: Initial behavior tests succeeding - Correctly load slice value on stack - Implement WrapErrorUnionErr and payload - Implement trunc, fix sliceLen and write undefined - Implement slice as return type and argument Note: This also fixes a memory leak for inferred error sets, and for usingnamespace --- src/Module.zig | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/Module.zig') diff --git a/src/Module.zig b/src/Module.zig index 7ef9a02e09..7fa91486d3 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -1226,19 +1226,20 @@ pub const Fn = struct { }; pub fn deinit(func: *Fn, gpa: Allocator) void { - if (func.getInferredErrorSet()) |map| { - map.deinit(gpa); + if (func.getInferredErrorSet()) |error_set_data| { + error_set_data.map.deinit(gpa); + error_set_data.functions.deinit(gpa); } } - pub fn getInferredErrorSet(func: *Fn) ?*std.StringHashMapUnmanaged(void) { + pub fn getInferredErrorSet(func: *Fn) ?*Type.Payload.ErrorSetInferred.Data { const ret_ty = func.owner_decl.ty.fnReturnType(); if (ret_ty.tag() == .generic_poison) { return null; } if (ret_ty.zigTypeTag() == .ErrorUnion) { if (ret_ty.errorUnionSet().castTag(.error_set_inferred)) |payload| { - return &payload.data.map; + return &payload.data; } } return null; @@ -1301,6 +1302,7 @@ pub const Namespace = struct { key.destroy(mod); } anon_decls.deinit(gpa); + ns.usingnamespace_set.deinit(gpa); } pub fn deleteAllDecls( @@ -1332,6 +1334,8 @@ pub const Namespace = struct { child_decl.destroy(mod); } anon_decls.deinit(gpa); + + ns.usingnamespace_set.deinit(gpa); } // This renders e.g. "std.fs.Dir.OpenOptions" -- cgit v1.2.3