Skip to content

Commit c912b4f

Browse files
committed
use unreachable_unchecked in Ip::decode
1 parent f61d0de commit c912b4f

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -835,6 +835,6 @@ pub fn op_code_to_handler(code: OpCode) -> Handler {
835835
OpCode::I64Store16Mem0Offset16_Si => exec::i64_store16_mem0_offset16_si,
836836
OpCode::I64Store32Mem0Offset16_Ss => exec::i64_store32_mem0_offset16_ss,
837837
OpCode::I64Store32Mem0Offset16_Si => exec::i64_store32_mem0_offset16_si,
838-
_ => todo!(),
838+
_ => unreachable!(),
839839
}
840840
}

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,12 @@ impl ir::Decoder for IpDecoder {
8686
impl Ip {
8787
pub unsafe fn decode<T: ir::Decode>(self) -> (Ip, T) {
8888
let mut ip = IpDecoder(self);
89-
let decoded = <T as ir::Decode>::decode(&mut ip).unwrap();
89+
let decoded = match <T as ir::Decode>::decode(&mut ip) {
90+
Ok(decoded) => decoded,
91+
Err(error) => unsafe {
92+
crate::engine::utils::unreachable_unchecked!("failed to decode `OpCode` or op-handler: {error}")
93+
}
94+
};
9095
(ip.0, decoded)
9196
}
9297

0 commit comments

Comments
 (0)