@@ -129,6 +129,34 @@ index 2caffa3..0c0584e 100644
129129+ #define WASMI_VERSION_PATCH 1
130130
131131 #endif // WASMI_H
132+ diff --git a/crates/c_api/src/error.rs b/crates/c_api/src/error.rs
133+ index f51aff8..dc85727 100644
134+ --- a/crates/c_api/src/error.rs
135+ +++ b/crates/c_api/src/error.rs
136+ @@ -1,4 +1,5 @@
137+ - use alloc::{boxed::Box, string::String};
138+ + use crate::wasm_name_t;
139+ + use alloc::{boxed::Box, string::String, vec::Vec};
140+ use core::ffi;
141+ use wasmi::Error;
142+
143+ @@ -50,3 +51,16 @@ pub(crate) fn handle_result<T>(
144+ Err(error) => Some(Box::new(wasmi_error_t::from(error))),
145+ }
146+ }
147+ +
148+ + /// Returns the error message of the [`wasmi_error_t`].
149+ + ///
150+ + /// Stores the returned error message in `out`.
151+ + #[cfg_attr(not(feature = "prefix-symbols"), no_mangle)]
152+ + #[cfg_attr(feature = "prefix-symbols", wasmi_c_api_macros::prefix_symbol)]
153+ + pub extern "C" fn wasmi_error_message(error: &wasmi_error_t, out: &mut wasm_name_t) {
154+ + let mut buffer = Vec::new();
155+ + buffer.extend_from_slice(format!("{:?}", error.inner).as_bytes());
156+ + buffer.reserve_exact(1);
157+ + buffer.push(0);
158+ + out.set_buffer(buffer.into());
159+ + }
132160diff --git a/crates/c_api/src/store.rs b/crates/c_api/src/store.rs
133161index 56d4898..9abda8e 100644
134162--- a/crates/c_api/src/store.rs
0 commit comments