diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-04-04 17:24:07 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-04-04 17:24:07 -0700 |
commit | b243bf42bf89bee18ece60fb0607cf1fb70ce702 (patch) | |
tree | cbef2b087729ea063d9827155873686b71ec1dd1 /src/wasm-js.cpp | |
parent | f84152a645d5585bb16f37164f838f87bfcf972e (diff) | |
parent | e6e701474b102b0f9b9d15f6b2c82f26cf956b6d (diff) | |
download | binaryen-b243bf42bf89bee18ece60fb0607cf1fb70ce702.tar.gz binaryen-b243bf42bf89bee18ece60fb0607cf1fb70ce702.tar.bz2 binaryen-b243bf42bf89bee18ece60fb0607cf1fb70ce702.zip |
Merge pull request #311 from WebAssembly/module-access
Access module elements using calls
Diffstat (limited to 'src/wasm-js.cpp')
-rw-r--r-- | src/wasm-js.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/wasm-js.cpp b/src/wasm-js.cpp index 61eac6e6c..6612e1e00 100644 --- a/src/wasm-js.cpp +++ b/src/wasm-js.cpp @@ -110,7 +110,7 @@ void finalizeModule() { exit(EXIT_FAILURE); } module->memory.initial = providedMemory / Memory::kPageSize; - module->memory.max = (module->exportsMap.find(GROW_WASM_MEMORY) != module->exportsMap.end()) ? -1 : module->memory.initial; + module->memory.max = module->checkExport(GROW_WASM_MEMORY) ? -1 : module->memory.initial; // global mapping is done in js in post.js } @@ -165,8 +165,7 @@ extern "C" void EMSCRIPTEN_KEEPALIVE instantiate() { EM_ASM({ Module['asmExports'] = {}; }); - for (auto& pair : module->exportsMap) { - auto& curr = pair.second; + for (auto* curr : module->exports) { EM_ASM_({ var name = Pointer_stringify($0); Module['asmExports'][name] = function() { @@ -178,15 +177,13 @@ extern "C" void EMSCRIPTEN_KEEPALIVE instantiate() { } // verify imports are provided - for (auto& pair : module->importsMap) { - auto& name = pair.first; - auto* import = pair.second; + for (auto* import : module->imports) { EM_ASM_({ var mod = Pointer_stringify($0); var base = Pointer_stringify($1); var name = Pointer_stringify($2); assert(Module['lookupImport'](mod, base), 'checking import ' + name + ' = ' + mod + '.' + base); - }, import->module.str, import->base.str, name.str); + }, import->module.str, import->base.str, import->name.str); } if (wasmJSDebug) std::cerr << "creating instance...\n"; @@ -432,8 +429,8 @@ extern "C" void EMSCRIPTEN_KEEPALIVE call_from_js(const char *target) { if (wasmJSDebug) std::cout << "call_from_js " << target << '\n'; IString exportName(target); - IString functionName = instance->wasm.exportsMap[exportName]->value; - Function *function = instance->wasm.functionsMap[functionName]; + IString functionName = instance->wasm.getExport(exportName)->value; + Function *function = instance->wasm.getFunction(functionName); assert(function); size_t seen = EM_ASM_INT_V({ return Module['tempArguments'].length }); size_t actual = function->params.size(); |