diff --git a/crates/wasmi/src/engine/executor.rs b/crates/wasmi/src/engine/executor.rs index 290ef7dfd5..4ac6651a72 100644 --- a/crates/wasmi/src/engine/executor.rs +++ b/crates/wasmi/src/engine/executor.rs @@ -4,7 +4,6 @@ use super::{ cache::InstanceCache, code_map::InstructionPtr, stack::ValueStackRef, - AsContextMut, CallOutcome, DropKeep, FuncFrame, @@ -26,18 +25,12 @@ use wasmi_core::{Pages, UntypedValue}; /// - If the execution of the function `frame` trapped. #[inline(always)] pub fn execute_frame<'engine>( - mut ctx: impl AsContextMut, + ctx: &mut StoreInner, value_stack: &'engine mut ValueStack, cache: &'engine mut InstanceCache, frame: &mut FuncFrame, ) -> Result { - Executor::new( - value_stack, - &mut ctx.as_context_mut().store.inner, - cache, - frame, - ) - .execute() + Executor::new(value_stack, ctx, cache, frame).execute() } /// The function signature of Wasm load operations. diff --git a/crates/wasmi/src/engine/mod.rs b/crates/wasmi/src/engine/mod.rs index 95a82f59e8..e4467879d1 100644 --- a/crates/wasmi/src/engine/mod.rs +++ b/crates/wasmi/src/engine/mod.rs @@ -714,7 +714,7 @@ impl<'engine> EngineExecutor<'engine> { #[inline(always)] fn execute_frame( &mut self, - ctx: impl AsContextMut, + mut ctx: impl AsContextMut, frame: &mut FuncFrame, cache: &mut InstanceCache, ) -> Result { @@ -729,6 +729,12 @@ impl<'engine> EngineExecutor<'engine> { } let value_stack = &mut self.stack.values; - execute_frame(ctx, value_stack, cache, frame).map_err(make_trap) + execute_frame( + &mut ctx.as_context_mut().store.inner, + value_stack, + cache, + frame, + ) + .map_err(make_trap) } }