Hook up error propagation

This commit is contained in:
Lachlan Sneff
2019-04-22 15:06:40 -07:00
parent a42b7d3815
commit 706ddabf61
13 changed files with 185 additions and 124 deletions

View File

@ -205,7 +205,8 @@ impl RunnableModule for X64ExecutionContext {
func: NonNull<vm::Func>,
args: *const u64,
rets: *mut u64,
_trap_info: *mut WasmTrapInfo,
trap_info: *mut WasmTrapInfo,
user_error: *mut Option<Box<dyn Any>>,
num_params_plus_one: Option<NonNull<c_void>>,
) -> bool {
let args = ::std::slice::from_raw_parts(
@ -227,7 +228,13 @@ impl RunnableModule for X64ExecutionContext {
}
true
}
Err(_) => false,
Err(err) => {
match err {
protect_unix::RunErr::Trap(info) => *trap_info = info,
protect_unix::RunErr::Error(data) => *user_error = Some(data),
}
false
}
}
}