mirror of
https://github.com/mii443/wasmer.git
synced 2025-12-09 14:18:20 +00:00
chore(c-api) Code clean up.
This commit is contained in:
@@ -10,11 +10,12 @@ pub struct wasm_store_t {
|
|||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub unsafe extern "C" fn wasm_store_new(
|
pub unsafe extern "C" fn wasm_store_new(
|
||||||
wasm_engine_ptr: Option<NonNull<wasm_engine_t>>,
|
engine: Option<NonNull<wasm_engine_t>>,
|
||||||
) -> Option<Box<wasm_store_t>> {
|
) -> Option<Box<wasm_store_t>> {
|
||||||
let wasm_engine_ptr = wasm_engine_ptr?;
|
let engine = engine?;
|
||||||
let wasm_engine = wasm_engine_ptr.as_ref();
|
let engine = engine.as_ref();
|
||||||
let store = Store::new(&*wasm_engine.inner);
|
|
||||||
|
let store = Store::new(&*engine.inner);
|
||||||
|
|
||||||
Some(Box::new(wasm_store_t { inner: store }))
|
Some(Box::new(wasm_store_t { inner: store }))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
use super::store::wasm_store_t;
|
use super::store::wasm_store_t;
|
||||||
use super::types::{wasm_byte_vec_t, wasm_frame_t, wasm_frame_vec_t, wasm_message_t};
|
use super::types::{wasm_byte_vec_t, wasm_frame_t, wasm_frame_vec_t, wasm_message_t};
|
||||||
|
use std::str;
|
||||||
use wasmer::RuntimeError;
|
use wasmer::RuntimeError;
|
||||||
|
|
||||||
// opaque type which is a `RuntimeError`
|
// opaque type which is a `RuntimeError`
|
||||||
@@ -19,8 +20,8 @@ pub unsafe extern "C" fn wasm_trap_new(
|
|||||||
_store: &mut wasm_store_t,
|
_store: &mut wasm_store_t,
|
||||||
message: &wasm_message_t,
|
message: &wasm_message_t,
|
||||||
) -> Option<Box<wasm_trap_t>> {
|
) -> Option<Box<wasm_trap_t>> {
|
||||||
let message_bytes: &[u8] = message.into_slice()?;
|
let message_bytes = message.into_slice()?;
|
||||||
let message_str = c_try!(std::str::from_utf8(message_bytes));
|
let message_str = c_try!(str::from_utf8(message_bytes));
|
||||||
let runtime_error = RuntimeError::new(message_str);
|
let runtime_error = RuntimeError::new(message_str);
|
||||||
let trap = runtime_error.into();
|
let trap = runtime_error.into();
|
||||||
|
|
||||||
@@ -31,11 +32,16 @@ pub unsafe extern "C" fn wasm_trap_new(
|
|||||||
pub unsafe extern "C" fn wasm_trap_delete(_trap: Option<Box<wasm_trap_t>>) {}
|
pub unsafe extern "C" fn wasm_trap_delete(_trap: Option<Box<wasm_trap_t>>) {}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub unsafe extern "C" fn wasm_trap_message(trap: &wasm_trap_t, out_ptr: &mut wasm_byte_vec_t) {
|
pub unsafe extern "C" fn wasm_trap_message(
|
||||||
|
trap: &wasm_trap_t,
|
||||||
|
// own
|
||||||
|
out: &mut wasm_byte_vec_t,
|
||||||
|
) {
|
||||||
let message = trap.inner.message();
|
let message = trap.inner.message();
|
||||||
let byte_vec: wasm_byte_vec_t = message.into_bytes().into();
|
let byte_vec: wasm_byte_vec_t = message.into_bytes().into();
|
||||||
out_ptr.size = byte_vec.size;
|
|
||||||
out_ptr.data = byte_vec.data;
|
out.size = byte_vec.size;
|
||||||
|
out.data = byte_vec.data;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
@@ -44,10 +50,14 @@ pub unsafe extern "C" fn wasm_trap_origin(trap: &wasm_trap_t) -> Option<Box<wasm
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub unsafe extern "C" fn wasm_trap_trace(trap: &wasm_trap_t, out_ptr: &mut wasm_frame_vec_t) {
|
pub unsafe extern "C" fn wasm_trap_trace(
|
||||||
|
trap: &wasm_trap_t,
|
||||||
|
// own
|
||||||
|
out: &mut wasm_frame_vec_t,
|
||||||
|
) {
|
||||||
let frames = trap.inner.trace();
|
let frames = trap.inner.trace();
|
||||||
let frame_vec: wasm_frame_vec_t = frames.into();
|
let frame_vec: wasm_frame_vec_t = frames.into();
|
||||||
|
|
||||||
out_ptr.size = frame_vec.size;
|
out.size = frame_vec.size;
|
||||||
out_ptr.data = frame_vec.data;
|
out.data = frame_vec.data;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user