@@ -619,8 +619,11 @@ Name Function::getLocalNameOrGeneric(Index index) {
619619}
620620
621621Index Function::getLocalIndex (Name name) {
622- assert (localIndices.count (name) > 0 );
623- return localIndices[name];
622+ auto iter = localIndices.find (name);
623+ if (iter == localIndices.end ()) {
624+ Fatal () << " Function::getLocalIndex: " << name << " does not exist" ;
625+ }
626+ return iter->second ;
624627}
625628
626629Index Function::getVarIndexBase () {
@@ -638,92 +641,137 @@ Type Function::getLocalType(Index index) {
638641}
639642
640643FunctionType* Module::getFunctionType (Name name) {
641- assert (functionTypesMap.count (name));
642- return functionTypesMap[name];
644+ auto iter = functionTypesMap.find (name);
645+ if (iter == functionTypesMap.end ()) {
646+ Fatal () << " Module::getFunctionType: " << name << " does not exist" ;
647+ }
648+ return iter->second ;
643649}
644650
645651Import* Module::getImport (Name name) {
646- assert (importsMap.count (name));
647- return importsMap[name];
652+ auto iter = importsMap.find (name);
653+ if (iter == importsMap.end ()) {
654+ Fatal () << " Module::getImport: " << name << " does not exist" ;
655+ }
656+ return iter->second ;
648657}
649658
650659Export* Module::getExport (Name name) {
651- assert (exportsMap.count (name));
652- return exportsMap[name];
660+ auto iter = exportsMap.find (name);
661+ if (iter == exportsMap.end ()) {
662+ Fatal () << " Module::getExport: " << name << " does not exist" ;
663+ }
664+ return iter->second ;
653665}
654666
655667Function* Module::getFunction (Name name) {
656- assert (functionsMap.count (name));
657- return functionsMap[name];
668+ auto iter = functionsMap.find (name);
669+ if (iter == functionsMap.end ()) {
670+ Fatal () << " Module::getFunction: " << name << " does not exist" ;
671+ }
672+ return iter->second ;
658673}
659674
660675Global* Module::getGlobal (Name name) {
661- assert (globalsMap.count (name));
662- return globalsMap[name];
676+ auto iter = globalsMap.find (name);
677+ if (iter == globalsMap.end ()) {
678+ Fatal () << " Module::getGlobal: " << name << " does not exist" ;
679+ }
680+ return iter->second ;
663681}
664682
665683FunctionType* Module::getFunctionTypeOrNull (Name name) {
666- if (!functionTypesMap.count (name))
684+ auto iter = functionTypesMap.find (name);
685+ if (iter == functionTypesMap.end ()) {
667686 return nullptr ;
668- return functionTypesMap[name];
687+ }
688+ return iter->second ;
669689}
670690
671691Import* Module::getImportOrNull (Name name) {
672- if (!importsMap.count (name))
692+ auto iter = importsMap.find (name);
693+ if (iter == importsMap.end ()) {
673694 return nullptr ;
674- return importsMap[name];
695+ }
696+ return iter->second ;
675697}
676698
677699Export* Module::getExportOrNull (Name name) {
678- if (!exportsMap.count (name))
700+ auto iter = exportsMap.find (name);
701+ if (iter == exportsMap.end ()) {
679702 return nullptr ;
680- return exportsMap[name];
703+ }
704+ return iter->second ;
681705}
682706
683707Function* Module::getFunctionOrNull (Name name) {
684- if (!functionsMap.count (name))
708+ auto iter = functionsMap.find (name);
709+ if (iter == functionsMap.end ()) {
685710 return nullptr ;
686- return functionsMap[name];
711+ }
712+ return iter->second ;
687713}
688714
689715Global* Module::getGlobalOrNull (Name name) {
690- if (!globalsMap.count (name))
716+ auto iter = globalsMap.find (name);
717+ if (iter == globalsMap.end ()) {
691718 return nullptr ;
692- return globalsMap[name];
719+ }
720+ return iter->second ;
693721}
694722
695723void Module::addFunctionType (FunctionType* curr) {
696- assert (curr->name .is ());
724+ if (!curr->name .is ()) {
725+ Fatal () << " Module::addFunctionType: empty name" ;
726+ }
727+ if (getFunctionTypeOrNull (curr->name )) {
728+ Fatal () << " Module::addFunctionType: " << curr->name << " already exists" ;
729+ }
697730 functionTypes.push_back (std::unique_ptr<FunctionType>(curr));
698- assert (functionTypesMap.find (curr->name ) == functionTypesMap.end ());
699731 functionTypesMap[curr->name ] = curr;
700732}
701733
702734void Module::addImport (Import* curr) {
703- assert (curr->name .is ());
735+ if (!curr->name .is ()) {
736+ Fatal () << " Module::addImport: empty name" ;
737+ }
738+ if (getImportOrNull (curr->name )) {
739+ Fatal () << " Module::addImport: " << curr->name << " already exists" ;
740+ }
704741 imports.push_back (std::unique_ptr<Import>(curr));
705- assert (importsMap.find (curr->name ) == importsMap.end ());
706742 importsMap[curr->name ] = curr;
707743}
708744
709745void Module::addExport (Export* curr) {
710- assert (curr->name .is ());
746+ if (!curr->name .is ()) {
747+ Fatal () << " Module::addExport: empty name" ;
748+ }
749+ if (getExportOrNull (curr->name )) {
750+ Fatal () << " Module::addExport: " << curr->name << " already exists" ;
751+ }
711752 exports.push_back (std::unique_ptr<Export>(curr));
712- assert (exportsMap.find (curr->name ) == exportsMap.end ());
713753 exportsMap[curr->name ] = curr;
714754}
715755
716756void Module::addFunction (Function* curr) {
717- assert (curr->name .is ());
757+ if (!curr->name .is ()) {
758+ Fatal () << " Module::addFunction: empty name" ;
759+ }
760+ if (getFunctionOrNull (curr->name )) {
761+ Fatal () << " Module::addFunction: " << curr->name << " already exists" ;
762+ }
718763 functions.push_back (std::unique_ptr<Function>(curr));
719- assert (functionsMap.find (curr->name ) == functionsMap.end ());
720764 functionsMap[curr->name ] = curr;
721765}
722766
723767void Module::addGlobal (Global* curr) {
724- assert (curr->name .is ());
768+ if (!curr->name .is ()) {
769+ Fatal () << " Module::addGlobal: empty name" ;
770+ }
771+ if (getGlobalOrNull (curr->name )) {
772+ Fatal () << " Module::addGlobal: " << curr->name << " already exists" ;
773+ }
725774 globals.push_back (std::unique_ptr<Global>(curr));
726- assert (globalsMap.find (curr->name ) == globalsMap.end ());
727775 globalsMap[curr->name ] = curr;
728776}
729777
0 commit comments