all globals, exported from env are non-mutable

This commit is contained in:
Svyatoslav Nikolsky
2017-07-28 11:01:27 +03:00
parent 0d40a0dd3b
commit 548e6ebbf9
3 changed files with 12 additions and 14 deletions

View File

@ -34,7 +34,7 @@ impl ProgramInstance {
/// Instantiate module with validation.
pub fn add_module<'a>(&self, name: &str, module: Module, externals: Option<&'a HashMap<String, Arc<ModuleInstanceInterface + 'a>>>) -> Result<Arc<ModuleInstance>, Error> {
let mut module_instance = ModuleInstance::new(Arc::downgrade(&self.essence), name.into(), module)?;
module_instance.instantiate(true, externals)?;
module_instance.instantiate(externals)?;
let module_instance = Arc::new(module_instance);
self.essence.modules.write().insert(name.into(), module_instance.clone());