[wasmtime-api] Record original Trap from API callback. (#657)

* Record original Trap from API callback.

Fixes #645

* use TrapRegistry

* comment about magic number
This commit is contained in:
Yury Delendik
2019-12-04 07:57:24 -06:00
committed by GitHub
parent fd8a5f62ed
commit 991592c4ba
6 changed files with 170 additions and 29 deletions

View File

@@ -3,6 +3,7 @@ use crate::externals::Extern;
use crate::module::Module;
use crate::r#ref::HostRef;
use crate::runtime::Store;
use crate::trampoline::take_api_trap;
use crate::types::{ExportType, ExternType, Name};
use anyhow::Result;
use std::cell::RefCell;
@@ -40,7 +41,12 @@ pub fn instantiate_in_context(
&mut resolver,
exports,
debug_info,
)?;
)
.map_err(|e| {
// TODO wrap HostRef<Trap> into Error
drop(take_api_trap());
e
})?;
contexts.insert(context);
Ok((instance, contexts))
}