summaryrefslogtreecommitdiffstats
path: root/src/util.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2021-01-06 18:43:06 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2021-01-22 20:45:18 (GMT)
commit81ce4ec5d0c6cfa508b1ae8d03b7ab3fcb94b3fe (patch)
tree4800fd04713e09716ce687a5b4ac707bbbfea47a /src/util.cpp
parent78569cb39857ca72f2ea45dfb2b56e98973ed5f4 (diff)
downloadDoxygen-81ce4ec5d0c6cfa508b1ae8d03b7ab3fcb94b3fe.zip
Doxygen-81ce4ec5d0c6cfa508b1ae8d03b7ab3fcb94b3fe.tar.gz
Doxygen-81ce4ec5d0c6cfa508b1ae8d03b7ab3fcb94b3fe.tar.bz2
Refactoring: modernize g_extLookup
Diffstat (limited to 'src/util.cpp')
-rw-r--r--src/util.cpp22
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.
}