summaryrefslogtreecommitdiff
path: root/crates/parser/src
diff options
context:
space:
mode:
Diffstat (limited to 'crates/parser/src')
-rw-r--r--crates/parser/src/conversion.rs6
-rw-r--r--crates/parser/src/module.rs6
2 files changed, 6 insertions, 6 deletions
diff --git a/crates/parser/src/conversion.rs b/crates/parser/src/conversion.rs
index 5de3a73..08f3c83 100644
--- a/crates/parser/src/conversion.rs
+++ b/crates/parser/src/conversion.rs
@@ -1,3 +1,5 @@
+use alloc::sync::Arc;
+
use crate::{Result, module::Code, visit::process_operators_and_validate};
use alloc::{boxed::Box, format, string::ToString, vec::Vec};
use tinywasm_types::*;
@@ -201,7 +203,7 @@ pub(crate) fn convert_module_code(
Ok(((body, data, local_counts), allocations))
}
-pub(crate) fn convert_module_type(ty: wasmparser::RecGroup) -> Result<FuncType> {
+pub(crate) fn convert_module_type(ty: wasmparser::RecGroup) -> Result<Arc<FuncType>> {
let mut types = ty.types();
if types.len() != 1 {
return Err(crate::ParseError::UnsupportedOperator(
@@ -212,7 +214,7 @@ pub(crate) fn convert_module_type(ty: wasmparser::RecGroup) -> Result<FuncType>
let ty = types.next().unwrap().unwrap_func();
let params: Vec<_> = ty.params().iter().map(convert_valtype).collect();
let results: Vec<_> = ty.results().iter().map(convert_valtype).collect();
- Ok(FuncType::new(&params, &results))
+ Ok(FuncType::new(&params, &results).into())
}
pub(crate) fn convert_reftype(reftype: wasmparser::RefType) -> WasmType {
diff --git a/crates/parser/src/module.rs b/crates/parser/src/module.rs
index 47257fe..164127f 100644
--- a/crates/parser/src/module.rs
+++ b/crates/parser/src/module.rs
@@ -52,10 +52,8 @@ impl ModuleReader {
debug!("Found type section");
validator.type_section(&reader)?;
- self.func_types = reader
- .into_iter()
- .map(|t| conversion::convert_module_type(t?).map(Arc::new))
- .collect::<Result<Vec<Arc<FuncType>>>>()?;
+ self.func_types =
+ reader.into_iter().map(|t| conversion::convert_module_type(t?)).collect::<Result<Vec<_>>>()?;
}
Payload::GlobalSection(reader) => {