Fixed import section parsing

This commit is contained in:
Lorenzo Torres 2025-03-19 20:33:13 +01:00
parent e8b4a131a9
commit d5d2f1b8d2

View file

@ -206,18 +206,21 @@ pub fn parseWasm(allocator: Allocator, stream: anytype) !Module {
const b = try stream.readByte(); const b = try stream.readByte();
switch (@as(std.wasm.ExternalKind, @enumFromInt(b))) { switch (@as(std.wasm.ExternalKind, @enumFromInt(b))) {
std.wasm.ExternalKind.function => try funcs.append(.{ .external = @intCast(i) }), std.wasm.ExternalKind.function => {
// TODO: not implemented try funcs.append(.{ .external = @intCast(i) });
std.wasm.ExternalKind.table => {},
std.wasm.ExternalKind.memory => {},
std.wasm.ExternalKind.global => {},
}
const idx = try std.leb.readULEB128(u32, stream); const idx = try std.leb.readULEB128(u32, stream);
try imports.append(.{ try imports.append(.{
.module = mod, .module = mod,
.name = nm, .name = nm,
.signature = idx, .signature = idx,
}); });
},
// TODO: not implemented
std.wasm.ExternalKind.table => try stream.skipBytes(3, .{}),
std.wasm.ExternalKind.memory => try stream.skipBytes(2, .{}),
std.wasm.ExternalKind.global => try stream.skipBytes(2, .{}),
}
} }
}, },
std.wasm.Section.function => { std.wasm.Section.function => {