From 013ff25b97cdd187f36345eb8ed425feeee0598f Mon Sep 17 00:00:00 2001 From: Svyatoslav Nikolsky Date: Thu, 4 May 2017 10:37:33 +0300 Subject: [PATCH] fixed InitExpr(Opcode::Global) --- src/elements/ops.rs | 1 + src/interpreter/program.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/elements/ops.rs b/src/elements/ops.rs index 34e0452..0f829af 100644 --- a/src/elements/ops.rs +++ b/src/elements/ops.rs @@ -48,6 +48,7 @@ impl Deserialize for Opcodes { } /// Initialization expression. +#[derive(Debug)] pub struct InitExpr(Vec); impl InitExpr { diff --git a/src/interpreter/program.rs b/src/interpreter/program.rs index c99a15e..ba586b6 100644 --- a/src/interpreter/program.rs +++ b/src/interpreter/program.rs @@ -28,11 +28,11 @@ impl ProgramInstance { /// Instantiate module. pub fn add_module(&self, name: &str, module: Module) -> Result, Error> { + let module_instance = Arc::new(ModuleInstance::new(Arc::downgrade(&self.essence), module)?); let mut modules = self.essence.modules.write(); match modules.entry(name.into()) { Entry::Occupied(_) => Err(Error::Program(format!("module {} already instantiated", name))), Entry::Vacant(entry) => { - let module_instance = Arc::new(ModuleInstance::new(Arc::downgrade(&self.essence), module)?); entry.insert(module_instance.clone()); Ok(module_instance) },