diff --git a/lib/emscripten/src/lib.rs b/lib/emscripten/src/lib.rs index b834f8d03..1da2e6aba 100644 --- a/lib/emscripten/src/lib.rs +++ b/lib/emscripten/src/lib.rs @@ -163,7 +163,7 @@ fn copy_string_into_wasm(instance: &mut Instance, string: String) -> CallResult< } .unwrap(); - let raw_memory = instance.inner.vmctx.memory(0)[space_offset as usize] as *mut u8; + let raw_memory = instance.ctx().memory(0)[space_offset as usize] as *mut u8; let slice = unsafe { slice::from_raw_parts_mut(raw_memory, string_len) }; @@ -194,7 +194,7 @@ fn create_wasm_array(instance: &mut Instance, values: Vec) -> CallResult) -> CallResult, - pub inner: Box, + module: Rc, + inner: Box, #[allow(dead_code)] imports: Box, } @@ -100,6 +100,10 @@ impl Instance { pub fn module(&self) -> Module { Module::new(Rc::clone(&self.module)) } + + pub fn ctx(&mut self) -> &mut vm::Ctx { + &mut self.inner.vmctx + } } impl Instance {