From 7b5fd8408249aa7cfaa11bd75422af463408a5f3 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 8 Nov 2022 11:43:20 -0600 Subject: [PATCH] c-api: Avoid losing error context with instance traps (#5223) This commit was a mistake from #5149 --- crates/c-api/src/instance.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/crates/c-api/src/instance.rs b/crates/c-api/src/instance.rs index 2f93661ecd..13fb96a369 100644 --- a/crates/c-api/src/instance.rs +++ b/crates/c-api/src/instance.rs @@ -98,13 +98,14 @@ pub(crate) fn handle_instantiate( *instance_ptr = i; None } - Err(e) => match e.downcast::() { - Ok(trap) => { - *trap_ptr = Box::into_raw(Box::new(wasm_trap_t::new(trap.into()))); + Err(e) => { + if e.is::() { + *trap_ptr = Box::into_raw(Box::new(wasm_trap_t::new(e))); None + } else { + Some(Box::new(e.into())) } - Err(e) => Some(Box::new(e.into())), - }, + } } }