Skip to content

Commit f6a49ab

Browse files
committed
add done macro
1 parent dbecd60 commit f6a49ab

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

crates/wasmi/src/engine/executor/handler/dispatch.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -312,12 +312,12 @@ macro_rules! exec_break {
312312
}};
313313
}
314314

315-
macro_rules! trap {
316-
($trap_code:expr, $state:expr, $ip:expr, $sp:expr, $mem0:expr, $mem0_len:expr, $instance:expr) => {{
317-
$state.done($crate::engine::executor::handler::state::DoneReason::Trap(
318-
$trap_code,
319-
));
320-
exec_break!($ip, $sp, $mem0, $mem0_len, $instance)
315+
macro_rules! done {
316+
($state:expr, $reason:expr) => {{
317+
$state.done(<_ as ::core::convert::Into<
318+
$crate::engine::executor::handler::DoneReason,
319+
>>::into($reason));
320+
$crate::engine::executor::handler::Done::control_break()
321321
}};
322322
}
323323

crates/wasmi/src/engine/executor/handler/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ mod utils;
66
mod exec;
77
mod state;
88

9+
use self::{dispatch::Done, state::DoneReason};
910
pub use self::{
1011
dispatch::{init_wasm_func_call, op_code_to_handler},
1112
state::Stack,

crates/wasmi/src/engine/executor/handler/state.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,12 @@ pub enum DoneReason {
6262
CompileError(Error),
6363
}
6464

65+
impl From<TrapCode> for DoneReason {
66+
fn from(trap_code: TrapCode) -> Self {
67+
Self::Trap(trap_code)
68+
}
69+
}
70+
6571
#[derive(Debug, Copy, Clone)]
6672
#[repr(transparent)]
6773
pub struct Mem0Ptr(*mut u8);

0 commit comments

Comments
 (0)