From ad14d82bcec2f6ed26d7e018f926b780d10def8b Mon Sep 17 00:00:00 2001 From: Leonardo Yvens Date: Thu, 17 Jan 2019 21:27:56 -0200 Subject: [PATCH] Expose globals to host (#158) * Make `global_by_index` pub, add `globals` getter * simplify access to globals --- src/module.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/module.rs b/src/module.rs index e755c4b..bbce6de 100644 --- a/src/module.rs +++ b/src/module.rs @@ -11,6 +11,7 @@ use hashmap_core::HashMap; use std::collections::HashMap; use common::{DEFAULT_MEMORY_INDEX, DEFAULT_TABLE_INDEX}; +use core::cell::Ref; use func::{FuncBody, FuncInstance, FuncRef}; use global::{GlobalInstance, GlobalRef}; use host::Externals; @@ -215,6 +216,12 @@ impl ModuleInstance { self.globals.borrow_mut().push(global) } + /// Access all globals. This is a non-standard API so it's unlikely to be + /// portable to other engines. + pub fn globals<'a>(&self) -> Ref> { + self.globals.borrow() + } + fn insert_export>(&self, name: N, extern_val: ExternVal) { self.exports.borrow_mut().insert(name.into(), extern_val); }