Remove the need for HostRef<Module>

This commit continues previous work and also #708 by removing the need
to use `HostRef<Module>` in the API of the `wasmtime` crate. The API
changes performed here are:

* The `Module` type is now itself internally reference counted.
* The `Module::store` function now returns the `Store` that was used to
  create a `Module`
* Documentation for `Module` and its methods have been expanded.
This commit is contained in:
Alex Crichton
2020-01-08 08:30:57 -08:00
parent eb1991c579
commit 1fe76ef9e3
20 changed files with 194 additions and 110 deletions

View File

@@ -65,9 +65,9 @@ impl WastContext {
}
fn instantiate(&self, module: &[u8]) -> Result<Outcome<HostRef<Instance>>> {
let module = HostRef::new(Module::new(&self.store, module)?);
let module = Module::new(&self.store, module)?;
let mut imports = Vec::new();
for import in module.borrow().imports() {
for import in module.imports() {
if import.module() == "spectest" {
let spectest = self
.spectest