export_by_name

This commit is contained in:
Sergey Pepyakin
2017-12-11 19:46:14 +01:00
parent a7abab07c4
commit 0d982429ab
2 changed files with 7 additions and 8 deletions

View File

@ -32,7 +32,7 @@ impl ProgramInstance {
for import_entry in module.import_section().map(|s| s.entries()).unwrap_or(&[]) {
let module = self.modules[import_entry.module()];
let extern_val = module
.resolve_export(&self.store, import_entry.field())
.export_by_name(&self.store, import_entry.field())
.ok_or_else(|| {
Error::Program(format!(
"Module {} doesn't have export {}",
@ -70,7 +70,7 @@ impl ProgramInstance {
Error::Program(format!("Module {} not found", module_name))
})?;
let extern_val = module_id
.resolve_export(&self.store, func_name)
.export_by_name(&self.store, func_name)
.ok_or_else(|| {
Error::Program(format!(
"Module {} doesn't have export {}",

View File

@ -27,9 +27,6 @@ impl TypeId {
#[derive(Copy, Clone, Debug)]
pub struct ModuleId(u32);
// TODO: Work on naming: resolve gets instances or ids?
// global_by_index vs resolve_global?
impl ModuleId {
pub fn memory_by_index(&self, store: &Store, idx: u32) -> Option<MemoryId> {
store.resolve_module(*self)
@ -67,9 +64,11 @@ impl ModuleId {
.cloned()
}
pub fn resolve_export(&self, store: &Store, name: &str) -> Option<ExternVal> {
let instance = store.resolve_module(*self);
instance.exports.get(name).cloned()
pub fn export_by_name(&self, store: &Store, name: &str) -> Option<ExternVal> {
store.resolve_module(*self)
.exports
.get(name)
.cloned()
}
}