Revert "Remove the need for HostRef<Module> (#778)"

This reverts commit 7b33f1c619.

Pushed a few extra commits by accident, so reverting this.
This commit is contained in:
Alex Crichton
2020-01-08 12:44:59 -08:00
parent 7b33f1c619
commit eb1991c579
22 changed files with 130 additions and 221 deletions

View File

@@ -21,7 +21,7 @@ impl Instance {
let py = gil.python();
let exports = PyDict::new(py);
let module = self.instance.borrow().module().clone();
for (i, e) in module.exports().iter().enumerate() {
for (i, e) in module.borrow().exports().iter().enumerate() {
match e.ty() {
wasmtime::ExternType::Func(ft) => {
let mut args_types = Vec::new();

View File

@@ -84,7 +84,7 @@ pub fn instantiate(
let engine = wasmtime::Engine::new(&wasmtime::Config::new().wasm_multi_value(true));
let store = wasmtime::Store::new(&engine);
let module = wasmtime::Module::new(&store, wasm_data).map_err(err2py)?;
let module = wasmtime::HostRef::new(wasmtime::Module::new(&store, wasm_data).map_err(err2py)?);
let data = Rc::new(ModuleData::new(wasm_data).map_err(err2py)?);
@@ -99,7 +99,7 @@ pub fn instantiate(
};
let mut imports: Vec<wasmtime::Extern> = Vec::new();
for i in module.imports() {
for i in module.borrow().imports() {
let module_name = i.module();
if let Some(m) = import_obj.get_item(module_name) {
let e = find_export_in(m, &store, i.name())?;

View File

@@ -4,5 +4,5 @@ use pyo3::prelude::*;
#[pyclass]
pub struct Module {
pub module: wasmtime::Module,
pub module: wasmtime::HostRef<wasmtime::Module>,
}

View File

@@ -57,13 +57,13 @@ fn generate_load(item: &syn::ItemTrait) -> syn::Result<TokenStream> {
let data = #root::wasmtime_interface_types::ModuleData::new(&bytes)?;
let module = Module::new(&store, &bytes)?;
let module = HostRef::new(Module::new(&store, &bytes)?);
let mut imports: Vec<Extern> = Vec::new();
if let Some(module_name) = data.find_wasi_module_name() {
let wasi_instance = #root::wasmtime_wasi::create_wasi_instance(&store, &[], &[], &[])
.map_err(|e| format_err!("wasm instantiation error: {:?}", e))?;
for i in module.imports().iter() {
for i in module.borrow().imports().iter() {
if i.module() != module_name {
bail!("unknown import module {}", i.module());
}