From 957b62bf1d6205409bac94a4ced790dfb8007e3d Mon Sep 17 00:00:00 2001 From: Henry Date: Wed, 15 Jul 2026 16:23:02 +0200 Subject: fix: 64 bit table addressing Signed-off-by: Henry --- crates/parser/src/module.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'crates/parser/src/module.rs') diff --git a/crates/parser/src/module.rs b/crates/parser/src/module.rs index 9273d44..05811ec 100644 --- a/crates/parser/src/module.rs +++ b/crates/parser/src/module.rs @@ -128,8 +128,18 @@ impl<'a> ModuleReader<'a> { if let Some(validator) = validator.as_mut() { validator.table_section(&reader)?; } - self.table_types = - reader.into_iter().map(|table| convert_module_table(table?)).collect::>()?; + self.table_types = reader + .into_iter() + .map(|table| { + let table = table?; + let element_type = convert_reftype(table.ty.element_type)?; + Ok(if table.ty.table64 { + TableType::new64(element_type, table.ty.initial, table.ty.maximum) + } else { + TableType::new(element_type, table.ty.initial, table.ty.maximum) + }) + }) + .collect::>()?; } Payload::MemorySection(reader) => { check_section("memory", !self.memory_types.is_empty())?; -- cgit v1.3.1