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/passes/RemoveImports.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/passes/RemoveImports.cpp')
-rw-r--r-- | src/passes/RemoveImports.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/passes/RemoveImports.cpp b/src/passes/RemoveImports.cpp index cd741180f..6463df10c 100644 --- a/src/passes/RemoveImports.cpp +++ b/src/passes/RemoveImports.cpp @@ -29,15 +29,15 @@ namespace wasm { struct RemoveImports : public WalkerPass<WasmWalker<RemoveImports>> { MixedArena* allocator; - std::map<Name, Import*> importsMap; + Module* module; - void prepare(PassRunner* runner, Module *module) override { + void prepare(PassRunner* runner, Module *module_) override { allocator = runner->allocator; - importsMap = module->importsMap; + module = module_; } void visitCallImport(CallImport *curr) { - WasmType type = importsMap[curr->target]->type->result; + WasmType type = module->getImport(curr->target)->type->result; if (type == none) { replaceCurrent(allocator->alloc<Nop>()); } else { @@ -48,8 +48,10 @@ struct RemoveImports : public WalkerPass<WasmWalker<RemoveImports>> { } void visitModule(Module *curr) { - curr->importsMap.clear(); - curr->imports.clear(); + auto imports = curr->imports; // copy + for (auto* import : imports) { + curr->removeImport(import->name); + } } }; |