Skip to content

Commit d3b8ce8

Browse files
committed
add wasmi_error_message impl
1 parent 5bb8c61 commit d3b8ce8

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

recipes/wasmi/all/patches/0001-xrplf-0.42.1.patch

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
+}
132160
diff --git a/crates/c_api/src/store.rs b/crates/c_api/src/store.rs
133161
index 56d4898..9abda8e 100644
134162
--- a/crates/c_api/src/store.rs

0 commit comments

Comments
 (0)