Fix trap_handling commit

This commit is contained in:
Lachlan Sneff
2019-01-21 14:01:25 -08:00
parent 69fd93937c
commit 57a4991415
3 changed files with 21 additions and 25 deletions

View File

@ -412,10 +412,6 @@ fn import_functions(
name: name.clone(),
});
}
None => Err(LinkError::ImportNotFound {
namespace: namespace.clone(),
name: name.clone(),
})?,
}
}
@ -483,10 +479,6 @@ fn import_memories(
name: name.clone(),
});
}
None => Err(LinkError::ImportNotFound {
namespace: namespace.clone(),
name: name.clone(),
})?,
}
}
@ -552,10 +544,6 @@ fn import_tables(
name: name.clone(),
});
}
None => Err(LinkError::ImportNotFound {
namespace: namespace.clone(),
name: name.clone(),
})?,
}
}
@ -612,10 +600,6 @@ fn import_globals(
name: name.clone(),
});
}
None => Err(LinkError::ImportNotFound {
namespace: namespace.clone(),
name: name.clone(),
})?,
}
}

View File

@ -2,11 +2,7 @@ use crate::types::{FuncSig, GlobalDesc, Memory, MemoryIndex, Table, TableIndex,
pub type Result<T> = std::result::Result<T, Box<Error>>;
pub type CompileResult<T> = std::result::Result<T, Box<CompileError>>;
<<<<<<< HEAD
pub type LinkResult<T> = std::result::Result<T, Vec<LinkError>>;
=======
pub type LinkResult<T> = std::result::Result<T, Box<LinkError>>;
>>>>>>> feature/vm_refactor_trap_handler
pub type RuntimeResult<T> = std::result::Result<T, Box<RuntimeError>>;
pub type CallResult<T> = std::result::Result<T, Box<CallError>>;

View File

@ -1,7 +1,7 @@
pub use crate::{
backing::{ImportBacking, LocalBacking},
pub use crate::backing::{ImportBacking, LocalBacking};
use crate::{
module::ModuleInner,
types::{LocalMemoryIndex, LocalOrImport, MemoryIndex, TableIndex},
types::{LocalMemoryIndex, LocalOrImport, MemoryIndex},
};
use std::{ffi::c_void, mem, ptr, slice};
@ -564,8 +564,9 @@ mod vm_ctx_tests {
fn generate_module() -> ModuleInner {
use super::Func;
use crate::backend::{FuncResolver, SigRegistry};
use crate::types::LocalFuncIndex;
use crate::backend::{FuncResolver, ProtectedCaller, SigRegistry, Token};
use crate::error::RuntimeResult;
use crate::types::{FuncIndex, LocalFuncIndex, Value};
use hashbrown::HashMap;
use std::ptr::NonNull;
struct Placeholder;
@ -578,9 +579,24 @@ mod vm_ctx_tests {
None
}
}
impl ProtectedCaller for Placeholder {
fn call(
&self,
_module: &ModuleInner,
_func_index: FuncIndex,
_params: &[Value],
_returns: &mut [Value],
_import_backing: &ImportBacking,
_vmctx: *mut Ctx,
_: Token,
) -> RuntimeResult<()> {
Ok(())
}
}
ModuleInner {
func_resolver: Box::new(Placeholder),
protected_caller: Box::new(Placeholder),
memories: Map::new(),
globals: Map::new(),
tables: Map::new(),