summaryrefslogtreecommitdiff
path: root/crates/parser/src/module.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/parser/src/module.rs')
-rw-r--r--crates/parser/src/module.rs14
1 files changed, 12 insertions, 2 deletions
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::<Result<_>>()?;
+ 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::<Result<_>>()?;
}
Payload::MemorySection(reader) => {
check_section("memory", !self.memory_types.is_empty())?;