diff --git a/Cargo.lock b/Cargo.lock
index 0c9041cc3c..d91401e018 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1971,7 +1971,6 @@ dependencies = [
"rayon",
"region",
"target-lexicon",
- "thiserror",
"wasi-common",
"wasmparser 0.45.1",
"wasmtime-environ",
diff --git a/crates/api/Cargo.toml b/crates/api/Cargo.toml
index 870415c87d..f5cd6089d4 100644
--- a/crates/api/Cargo.toml
+++ b/crates/api/Cargo.toml
@@ -19,7 +19,6 @@ wasmtime-jit = { path = "../jit" }
wasmparser = { version = "0.45.1", default-features = false }
target-lexicon = { version = "0.9.0", default-features = false }
anyhow = "1.0.19"
-thiserror = "1.0.4"
region = "2.0.0"
[dev-dependencies]
diff --git a/crates/api/src/callable.rs b/crates/api/src/callable.rs
index d849a38c1c..cda332c3a8 100644
--- a/crates/api/src/callable.rs
+++ b/crates/api/src/callable.rs
@@ -1,7 +1,6 @@
-use crate::r#ref::HostRef;
use crate::runtime::Store;
use crate::trampoline::{generate_func_export, take_api_trap};
-use crate::trap::{Trap, TrapInfo};
+use crate::trap::Trap;
use crate::types::FuncType;
use crate::values::Val;
use std::rc::Rc;
@@ -158,9 +157,9 @@ impl WrappedCallable for WasmtimeFn {
values_vec.as_mut_ptr() as *mut u8,
)
} {
- let trap = take_api_trap()
- .unwrap_or_else(|| HostRef::new(TrapInfo::new(format!("call error: {}", message))));
- return Err(trap.into());
+ let trap =
+ take_api_trap().unwrap_or_else(|| Trap::new(format!("call error: {}", message)));
+ return Err(trap);
}
// Load the return values out of `values_vec`.
diff --git a/crates/api/src/instance.rs b/crates/api/src/instance.rs
index ea7a7b56db..dde324a54a 100644
--- a/crates/api/src/instance.rs
+++ b/crates/api/src/instance.rs
@@ -45,7 +45,7 @@ pub fn instantiate_in_context(
)
.map_err(|e| -> Error {
if let Some(trap) = take_api_trap() {
- Trap::from(trap).into()
+ trap.into()
} else if let SetupError::Instantiate(InstantiationError::StartTrap(msg)) = e {
Trap::new(msg).into()
} else {
diff --git a/crates/api/src/lib.rs b/crates/api/src/lib.rs
index 18c3d0bf5c..49622c94fe 100644
--- a/crates/api/src/lib.rs
+++ b/crates/api/src/lib.rs
@@ -28,6 +28,6 @@ pub use crate::instance::Instance;
pub use crate::module::Module;
pub use crate::r#ref::{AnyRef, HostInfo, HostRef};
pub use crate::runtime::{Config, Engine, OptLevel, Store, Strategy};
-pub use crate::trap::{FrameInfo, Trap, TrapInfo};
+pub use crate::trap::{FrameInfo, Trap};
pub use crate::types::*;
pub use crate::values::*;
diff --git a/crates/api/src/trampoline/func.rs b/crates/api/src/trampoline/func.rs
index 3d0ae86fe3..8ace580382 100644
--- a/crates/api/src/trampoline/func.rs
+++ b/crates/api/src/trampoline/func.rs
@@ -95,7 +95,6 @@ unsafe extern "C" fn stub_fn(vmctx: *mut VMContext, call_id: u32, values_vec: *m
0
}
Err(trap) => {
- let trap = trap.trap_info_unchecked();
record_api_trap(trap);
1
}
diff --git a/crates/api/src/trampoline/trap.rs b/crates/api/src/trampoline/trap.rs
index e10f159f2d..be92126ed9 100644
--- a/crates/api/src/trampoline/trap.rs
+++ b/crates/api/src/trampoline/trap.rs
@@ -1,7 +1,6 @@
use std::cell::Cell;
-use crate::r#ref::HostRef;
-use crate::TrapInfo;
+use crate::Trap;
use wasmtime_environ::ir::{SourceLoc, TrapCode};
use wasmtime_environ::TrapInformation;
use wasmtime_jit::trampoline::binemit;
@@ -10,10 +9,10 @@ use wasmtime_jit::trampoline::binemit;
pub const API_TRAP_CODE: TrapCode = TrapCode::User(13);
thread_local! {
- static RECORDED_API_TRAP: Cell