Remove the need for HostRef<Module> (#778)
* 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. * Fix compliation of test programs harness * Fix the python extension * Update `CodeMemory` to be `Send + Sync` This commit updates the `CodeMemory` type in wasmtime to be both `Send` and `Sync` by updating the implementation of `Mmap` to not store raw pointers. This avoids the need for an `unsafe impl` and leaves the unsafety as it is currently. * Fix a typo
This commit is contained in:
@@ -234,15 +234,14 @@ impl RunCommand {
|
||||
store: &Store,
|
||||
module_registry: &HashMap<String, HostRef<Instance>>,
|
||||
path: &Path,
|
||||
) -> Result<(HostRef<Instance>, HostRef<Module>, Vec<u8>)> {
|
||||
) -> Result<(HostRef<Instance>, Module, Vec<u8>)> {
|
||||
// Read the wasm module binary either as `*.wat` or a raw binary
|
||||
let data = wat::parse_file(path)?;
|
||||
|
||||
let module = HostRef::new(Module::new(store, &data)?);
|
||||
let module = Module::new(store, &data)?;
|
||||
|
||||
// Resolve import using module_registry.
|
||||
let imports = module
|
||||
.borrow()
|
||||
.imports()
|
||||
.iter()
|
||||
.map(|i| {
|
||||
@@ -285,7 +284,6 @@ impl RunCommand {
|
||||
let data = ModuleData::new(&data)?;
|
||||
self.invoke_export(instance, &data, name)?;
|
||||
} else if module
|
||||
.borrow()
|
||||
.exports()
|
||||
.iter()
|
||||
.any(|export| export.name().is_empty())
|
||||
|
||||
Reference in New Issue
Block a user