mirror of
https://github.com/fluencelabs/parity-wasm
synced 2025-06-23 11:41:58 +00:00
export_by_name
This commit is contained in:
@ -32,7 +32,7 @@ impl ProgramInstance {
|
|||||||
for import_entry in module.import_section().map(|s| s.entries()).unwrap_or(&[]) {
|
for import_entry in module.import_section().map(|s| s.entries()).unwrap_or(&[]) {
|
||||||
let module = self.modules[import_entry.module()];
|
let module = self.modules[import_entry.module()];
|
||||||
let extern_val = module
|
let extern_val = module
|
||||||
.resolve_export(&self.store, import_entry.field())
|
.export_by_name(&self.store, import_entry.field())
|
||||||
.ok_or_else(|| {
|
.ok_or_else(|| {
|
||||||
Error::Program(format!(
|
Error::Program(format!(
|
||||||
"Module {} doesn't have export {}",
|
"Module {} doesn't have export {}",
|
||||||
@ -70,7 +70,7 @@ impl ProgramInstance {
|
|||||||
Error::Program(format!("Module {} not found", module_name))
|
Error::Program(format!("Module {} not found", module_name))
|
||||||
})?;
|
})?;
|
||||||
let extern_val = module_id
|
let extern_val = module_id
|
||||||
.resolve_export(&self.store, func_name)
|
.export_by_name(&self.store, func_name)
|
||||||
.ok_or_else(|| {
|
.ok_or_else(|| {
|
||||||
Error::Program(format!(
|
Error::Program(format!(
|
||||||
"Module {} doesn't have export {}",
|
"Module {} doesn't have export {}",
|
||||||
|
@ -27,9 +27,6 @@ impl TypeId {
|
|||||||
#[derive(Copy, Clone, Debug)]
|
#[derive(Copy, Clone, Debug)]
|
||||||
pub struct ModuleId(u32);
|
pub struct ModuleId(u32);
|
||||||
|
|
||||||
// TODO: Work on naming: resolve gets instances or ids?
|
|
||||||
// global_by_index vs resolve_global?
|
|
||||||
|
|
||||||
impl ModuleId {
|
impl ModuleId {
|
||||||
pub fn memory_by_index(&self, store: &Store, idx: u32) -> Option<MemoryId> {
|
pub fn memory_by_index(&self, store: &Store, idx: u32) -> Option<MemoryId> {
|
||||||
store.resolve_module(*self)
|
store.resolve_module(*self)
|
||||||
@ -67,9 +64,11 @@ impl ModuleId {
|
|||||||
.cloned()
|
.cloned()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn resolve_export(&self, store: &Store, name: &str) -> Option<ExternVal> {
|
pub fn export_by_name(&self, store: &Store, name: &str) -> Option<ExternVal> {
|
||||||
let instance = store.resolve_module(*self);
|
store.resolve_module(*self)
|
||||||
instance.exports.get(name).cloned()
|
.exports
|
||||||
|
.get(name)
|
||||||
|
.cloned()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user