diff options
author | Dimitri van Heesch <doxygen@gmail.com> | 2021-01-06 18:43:06 (GMT) |
---|---|---|
committer | Dimitri van Heesch <doxygen@gmail.com> | 2021-01-22 20:45:18 (GMT) |
commit | 81ce4ec5d0c6cfa508b1ae8d03b7ab3fcb94b3fe (patch) | |
tree | 4800fd04713e09716ce687a5b4ac707bbbfea47a /src | |
parent | 78569cb39857ca72f2ea45dfb2b56e98973ed5f4 (diff) | |
download | Doxygen-81ce4ec5d0c6cfa508b1ae8d03b7ab3fcb94b3fe.zip Doxygen-81ce4ec5d0c6cfa508b1ae8d03b7ab3fcb94b3fe.tar.gz Doxygen-81ce4ec5d0c6cfa508b1ae8d03b7ab3fcb94b3fe.tar.bz2 |
Refactoring: modernize g_extLookup
Diffstat (limited to 'src')
-rw-r--r-- | src/util.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/util.cpp b/src/util.cpp index f59abc3..b616132 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -5452,7 +5452,7 @@ void stringToSearchIndex(const QCString &docBaseUrl,const QCString &title, //-------------------------------------------------------------------------- -static QDict<int> g_extLookup; +static std::unordered_map<std::string,int> g_extLookup; static struct Lang2ExtMap { @@ -5500,12 +5500,13 @@ bool updateLanguageMapping(const QCString &extension,const QCString &language) QCString extName = extension.lower(); if (extName.isEmpty()) return FALSE; if (extName.at(0)!='.') extName.prepend("."); - if (g_extLookup.find(extension)!=0) // language was already register for this ext + auto it = g_extLookup.find(extension.str()); + if (it!=g_extLookup.end()) { - g_extLookup.remove(extension); + g_extLookup.erase(it); // language was already register for this ext } //printf("registering extension %s\n",extName.data()); - g_extLookup.insert(extName,new int(parserId)); + g_extLookup.insert(std::make_pair(extName,parserId)); if (!Doxygen::parserManager->registerExtension(extName,p->parserName)) { err("Failed to assign extension %s to parser %s for language %s\n", @@ -5522,7 +5523,6 @@ bool updateLanguageMapping(const QCString &extension,const QCString &language) void initDefaultExtensionMapping() { // NOTE: when adding an extension, also add the extension in config.xml - g_extLookup.setAutoDelete(TRUE); // extension parser id updateLanguageMapping(".dox", "c"); updateLanguageMapping(".txt", "c"); // see bug 760836 @@ -5593,12 +5593,12 @@ SrcLangExt getLanguageFromFileName(const QCString& fileName) QCString extName = fi.extension(FALSE).lower().data(); if (extName.isEmpty()) extName=".no_extension"; if (extName.at(0)!='.') extName.prepend("."); - int *pVal=g_extLookup.find(extName.data()); - if (pVal) // listed extension - { - //printf("getLanguageFromFileName(%s)=%x\n",fi.extension().data(),*pVal); - return (SrcLangExt)*pVal; - } + auto it = g_extLookup.find(extName.str()); + if (it!=g_extLookup.end()) // listed extension + { + //printf("getLanguageFromFileName(%s)=%x\n",fi.extension().data(),*pVal); + return (SrcLangExt)it->second; + } //printf("getLanguageFromFileName(%s) not found!\n",fileName.data()); return SrcLangExt_Cpp; // not listed => assume C-ish language. } |