Improve error handling, fix probable lifetime issue

This commit is contained in:
Mark McCaskey
2019-08-28 13:19:06 -07:00
parent a188e7f652
commit 8a2dba534a
2 changed files with 21 additions and 11 deletions

View File

@ -41,20 +41,20 @@ pub fn generate_import_object(
mapped_dirs: Vec<(String, PathBuf)>,
) -> ImportObject {
let state_gen = move || {
// TODO: look into removing all these unnecessary clones
fn state_destructor(data: *mut c_void) {
dbg!("IN DESTRUCTOR");
dbg!(&data);
unsafe {
drop(Box::from_raw(data as *mut WasiState));
}
}
let preopened_files = preopened_files.clone();
let mapped_dirs = mapped_dirs.clone();
let state = Box::new(WasiState {
fs: WasiFs::new(&preopened_files, &mapped_dirs).unwrap(),
fs: WasiFs::new(&preopened_files, &mapped_dirs).expect("Could not create WASI FS"),
args: args.clone(),
envs: envs.clone(),
});
dbg!("IN CONSTRUCTOR");
(
Box::into_raw(state) as *mut c_void,