2222
2323namespace wasm {
2424
25+ namespace {
26+
27+ template <typename Value>
28+ const Value& getModuleElement (const std::unordered_map<Name, Value>& m,
29+ Name name,
30+ std::string_view funcName) {
31+ auto iter = m.find (name);
32+ if (iter == m.end ()) {
33+ Fatal () << " Module::" << funcName << " : " << name << " does not exist" ;
34+ }
35+ return iter->second ;
36+ }
37+
38+ } // namespace
39+
2540// shared constants
2641
2742Name RETURN_FLOW (" *return:)*" );
@@ -1706,45 +1721,35 @@ void Function::clearDebugInfo() {
17061721 epilogLocation.reset ();
17071722}
17081723
1709- template <typename Map>
1710- typename Map::mapped_type&
1711- getModuleElement (Map& m, Name name, std::string_view funcName) {
1712- auto iter = m.find (name);
1713- if (iter == m.end ()) {
1714- Fatal () << " Module::" << funcName << " : " << name << " does not exist" ;
1715- }
1716- return iter->second ;
1717- }
1718-
1719- Export* Module::getExport (Name name) {
1724+ Export* Module::getExport (Name name) const {
17201725 return getModuleElement (exportsMap, name, " getExport" );
17211726}
17221727
1723- Function* Module::getFunction (Name name) {
1728+ Function* Module::getFunction (Name name) const {
17241729 return getModuleElement (functionsMap, name, " getFunction" );
17251730}
17261731
1727- Table* Module::getTable (Name name) {
1732+ Table* Module::getTable (Name name) const {
17281733 return getModuleElement (tablesMap, name, " getTable" );
17291734}
17301735
1731- ElementSegment* Module::getElementSegment (Name name) {
1736+ ElementSegment* Module::getElementSegment (Name name) const {
17321737 return getModuleElement (elementSegmentsMap, name, " getElementSegment" );
17331738}
17341739
1735- Memory* Module::getMemory (Name name) {
1740+ Memory* Module::getMemory (Name name) const {
17361741 return getModuleElement (memoriesMap, name, " getMemory" );
17371742}
17381743
1739- DataSegment* Module::getDataSegment (Name name) {
1744+ DataSegment* Module::getDataSegment (Name name) const {
17401745 return getModuleElement (dataSegmentsMap, name, " getDataSegment" );
17411746}
17421747
1743- Global* Module::getGlobal (Name name) {
1748+ Global* Module::getGlobal (Name name) const {
17441749 return getModuleElement (globalsMap, name, " getGlobal" );
17451750}
17461751
1747- Tag* Module::getTag (Name name) {
1752+ Tag* Module::getTag (Name name) const {
17481753 return getModuleElement (tagsMap, name, " getTag" );
17491754}
17501755
@@ -1757,39 +1762,39 @@ typename Map::mapped_type getModuleElementOrNull(Map& m, Name name) {
17571762 return iter->second ;
17581763}
17591764
1760- Export* Module::getExportOrNull (Name name) {
1765+ Export* Module::getExportOrNull (Name name) const {
17611766 return getModuleElementOrNull (exportsMap, name);
17621767}
17631768
1764- Function* Module::getFunctionOrNull (Name name) {
1769+ Function* Module::getFunctionOrNull (Name name) const {
17651770 return getModuleElementOrNull (functionsMap, name);
17661771}
17671772
1768- Table* Module::getTableOrNull (Name name) {
1773+ Table* Module::getTableOrNull (Name name) const {
17691774 return getModuleElementOrNull (tablesMap, name);
17701775}
17711776
1772- ElementSegment* Module::getElementSegmentOrNull (Name name) {
1777+ ElementSegment* Module::getElementSegmentOrNull (Name name) const {
17731778 return getModuleElementOrNull (elementSegmentsMap, name);
17741779}
17751780
1776- Memory* Module::getMemoryOrNull (Name name) {
1781+ Memory* Module::getMemoryOrNull (Name name) const {
17771782 return getModuleElementOrNull (memoriesMap, name);
17781783}
17791784
1780- DataSegment* Module::getDataSegmentOrNull (Name name) {
1785+ DataSegment* Module::getDataSegmentOrNull (Name name) const {
17811786 return getModuleElementOrNull (dataSegmentsMap, name);
17821787}
17831788
1784- Global* Module::getGlobalOrNull (Name name) {
1789+ Global* Module::getGlobalOrNull (Name name) const {
17851790 return getModuleElementOrNull (globalsMap, name);
17861791}
17871792
1788- Tag* Module::getTagOrNull (Name name) {
1793+ Tag* Module::getTagOrNull (Name name) const {
17891794 return getModuleElementOrNull (tagsMap, name);
17901795}
17911796
1792- Importable* Module::getImport (ModuleItemKind kind, Name name) {
1797+ Importable* Module::getImport (ModuleItemKind kind, Name name) const {
17931798 switch (kind) {
17941799 case ModuleItemKind::Function:
17951800 return getFunction (name);
@@ -1810,7 +1815,7 @@ Importable* Module::getImport(ModuleItemKind kind, Name name) {
18101815 WASM_UNREACHABLE (" unexpected kind" );
18111816}
18121817
1813- Importable* Module::getImportOrNull (ModuleItemKind kind, Name name) {
1818+ Importable* Module::getImportOrNull (ModuleItemKind kind, Name name) const {
18141819 auto doReturn = [](Importable* importable) {
18151820 return importable ? importable->imported () ? importable : nullptr : nullptr ;
18161821 };
0 commit comments