Fix native_env_global.

This commit is contained in:
Sergey Pepyakin
2017-11-28 16:55:28 +03:00
parent c3a3ad83fa
commit 6680b915bf
2 changed files with 12 additions and 6 deletions

View File

@ -1,16 +1,17 @@
use std::sync::Arc;
use std::sync::{Arc, Weak};
use std::collections::HashMap;
use std::borrow::Cow;
use parking_lot::RwLock;
use elements::{Internal, ValueType};
use interpreter::Error;
use interpreter::module::{ModuleInstanceInterface, ExecutionParams, ItemIndex,
use interpreter::module::{ModuleInstance, ModuleInstanceInterface, ExecutionParams, ItemIndex,
CallerContext, ExportEntryType, InternalFunctionReference, InternalFunction, FunctionSignature};
use interpreter::memory::MemoryInstance;
use interpreter::table::TableInstance;
use interpreter::value::RuntimeValue;
use interpreter::variable::{VariableInstance, VariableType};
use builder::module;
/// Min index of native function.
pub const NATIVE_INDEX_FUNC_MIN: u32 = 10001;
@ -284,6 +285,12 @@ pub fn native_module<'a, E: UserFunctionExecutor + 'a>(base: Arc<ModuleInstanceI
Ok(Arc::new(NativeModuleInstance::new(base, user_elements)?))
}
pub fn simple_native_module<'a, E: UserFunctionExecutor + 'a>(user_elements: UserDefinedElements<E>) -> Result<Arc<ModuleInstanceInterface + 'a>, Error> {
let mut instance = ModuleInstance::new(Weak::default(), "env".into(), module().build())?;
instance.instantiate(None)?;
native_module(Arc::new(instance), user_elements)
}
impl<'a> PartialEq for UserFunctionDescriptor {
fn eq(&self, other: &Self) -> bool {
self.params() == other.params()