Add instance.ctx() to make inner private again

This commit is contained in:
Brandon Fish
2019-01-23 22:27:33 -06:00
parent 6a5386e313
commit 8266386119
2 changed files with 9 additions and 5 deletions

View File

@ -163,7 +163,7 @@ fn copy_string_into_wasm(instance: &mut Instance, string: String) -> CallResult<
} }
.unwrap(); .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) }; 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<u32>) -> CallResult<u3
} }
.unwrap(); .unwrap();
let raw_memory = instance.inner.vmctx.memory(0)[values_offset as usize] as *mut u32; let raw_memory = instance.ctx().memory(0)[values_offset as usize] as *mut u32;
let slice = unsafe { slice::from_raw_parts_mut(raw_memory, values_len) }; let slice = unsafe { slice::from_raw_parts_mut(raw_memory, values_len) };
@ -213,7 +213,7 @@ fn create_wasm_array(instance: &mut Instance, values: Vec<u32>) -> CallResult<u3
} }
.unwrap(); .unwrap();
let raw_memory = instance.inner.vmctx.memory(0)[values_offset as usize] as *mut u32; let raw_memory = instance.ctx().memory(0)[values_offset as usize] as *mut u32;
unsafe { *raw_memory = values_offset }; unsafe { *raw_memory = values_offset };

View File

@ -25,8 +25,8 @@ pub struct InstanceInner {
/// A WebAssembly instance /// A WebAssembly instance
pub struct Instance { pub struct Instance {
pub module: Rc<ModuleInner>, module: Rc<ModuleInner>,
pub inner: Box<InstanceInner>, inner: Box<InstanceInner>,
#[allow(dead_code)] #[allow(dead_code)]
imports: Box<ImportObject>, imports: Box<ImportObject>,
} }
@ -100,6 +100,10 @@ impl Instance {
pub fn module(&self) -> Module { pub fn module(&self) -> Module {
Module::new(Rc::clone(&self.module)) Module::new(Rc::clone(&self.module))
} }
pub fn ctx(&mut self) -> &mut vm::Ctx {
&mut self.inner.vmctx
}
} }
impl Instance { impl Instance {