Remove Drop impl for wasi_instance_t.

This commit is contained in:
Peter Huene
2020-02-25 12:58:38 -08:00
parent 4e1d2a2fc1
commit 104919eb79

View File

@@ -192,15 +192,7 @@ pub unsafe extern "C" fn wasi_config_preopen_dir(
#[repr(C)] #[repr(C)]
pub struct wasi_instance_t { pub struct wasi_instance_t {
wasi: Wasi, wasi: Wasi,
export_cache: HashMap<String, *mut wasm_extern_t>, export_cache: HashMap<String, Box<wasm_extern_t>>,
}
impl Drop for wasi_instance_t {
fn drop(&mut self) {
for v in self.export_cache.values() {
drop(unsafe { Box::from_raw(*v) });
}
}
} }
#[no_mangle] #[no_mangle]
@@ -260,14 +252,14 @@ pub unsafe extern "C" fn wasi_instance_bind_import(
return std::ptr::null_mut(); return std::ptr::null_mut();
} }
*(*instance) &**(*instance)
.export_cache .export_cache
.entry(name.to_string()) .entry(name.to_string())
.or_insert_with(|| { .or_insert_with(|| {
Box::into_raw(Box::new(wasm_extern_t { Box::new(wasm_extern_t {
which: ExternHost::Func(HostRef::new(export.clone())), which: ExternHost::Func(HostRef::new(export.clone())),
}))
}) })
}) as *const wasm_extern_t
} }
None => std::ptr::null_mut(), None => std::ptr::null_mut(),
} }