From 238e7aa76102cf64fa22ac5774326fcf35bc3792 Mon Sep 17 00:00:00 2001 From: Henry Date: Tue, 21 Apr 2026 20:14:04 +0200 Subject: feat: oom traps Signed-off-by: Henry --- crates/parser/src/conversion.rs | 6 ++++-- crates/parser/src/module.rs | 6 ++---- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'crates/parser') 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 { +pub(crate) fn convert_module_type(ty: wasmparser::RecGroup) -> Result> { 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 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(¶ms, &results)) + Ok(FuncType::new(¶ms, &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::>>>()?; + self.func_types = + reader.into_iter().map(|t| conversion::convert_module_type(t?)).collect::>>()?; } Payload::GlobalSection(reader) => { -- cgit v1.3.1