modules now get a owned Instance

This commit is contained in:
Sebastian Moser
2024-10-20 12:53:15 +02:00
parent 2c822641b2
commit 7033cc7e3b
2 changed files with 4 additions and 4 deletions

View File

@@ -16,11 +16,11 @@ pub struct EmptyModule {
} }
impl Module for EmptyModule { impl Module for EmptyModule {
fn init(&mut self, instance: &Instance) -> MizeResult<()> { fn init(&mut self, instance: Instance) -> MizeResult<()> {
println!("empty module fn init"); println!("empty module fn init");
Ok(()) Ok(())
} }
fn exit(&mut self, instance: &Instance) -> MizeResult<()> { fn exit(&mut self, instance: Instance) -> MizeResult<()> {
println!("empty module fn exit"); println!("empty module fn exit");
Ok(()) Ok(())

View File

@@ -241,11 +241,11 @@ pub fn load_module(instance: &mut Instance, module_name: &str, path: Option<Path
let lib = unsafe { libloading::Library::new(module_path)? }; let lib = unsafe { libloading::Library::new(module_path)? };
let func: libloading::Symbol<unsafe extern "C" fn(&mut Box<dyn Module + Send + Sync>) -> ()> = unsafe { lib.get(format!("get_mize_module_{}", module_name).as_bytes())? }; let func: libloading::Symbol<unsafe extern "C" fn(&mut Box<dyn Module + Send + Sync>, Instance) -> ()> = unsafe { lib.get(format!("get_mize_module_{}", module_name).as_bytes())? };
let mut module: Box<dyn Module + Send + Sync> = Box::new(EmptyModule {}); let mut module: Box<dyn Module + Send + Sync> = Box::new(EmptyModule {});
unsafe { func(&mut module) }; unsafe { func(&mut module, instance.clone()) };
let mut modules_inner = instance.modules.lock()?; let mut modules_inner = instance.modules.lock()?;