diff options
author | David Hebbeker <david@hebbeker.info> | 2020-12-29 22:11:39 (GMT) |
---|---|---|
committer | David Hebbeker <david@hebbeker.info> | 2020-12-29 22:11:39 (GMT) |
commit | 3e1fa4563ba16e413355601fec55072dde89fa35 (patch) | |
tree | 045fd674f134217e79b6c3390e0f72eaa95ca58e /src | |
parent | af6bf4883affe57d3be48e4b4538eb3c47decfad (diff) | |
download | Doxygen-3e1fa4563ba16e413355601fec55072dde89fa35.zip Doxygen-3e1fa4563ba16e413355601fec55072dde89fa35.tar.gz Doxygen-3e1fa4563ba16e413355601fec55072dde89fa35.tar.bz2 |
Substitute `QDict<UsedDir>` with `std::map<QCString, UsedDir * >`.
This allows to use range based for loops.
Diffstat (limited to 'src')
-rw-r--r-- | src/dirdef.cpp | 27 | ||||
-rw-r--r-- | src/dirdef.h | 5 | ||||
-rw-r--r-- | src/dotdirdeps.cpp | 11 |
3 files changed, 23 insertions, 20 deletions
diff --git a/src/dirdef.cpp b/src/dirdef.cpp index 14d978e..b7f508c 100644 --- a/src/dirdef.cpp +++ b/src/dirdef.cpp @@ -40,7 +40,7 @@ class DirDefImpl : public DefinitionMixin<DirDef> virtual int level() const { return m_level; } virtual DirDef *parent() const { return m_parent; } virtual int dirCount() const { return m_dirCount; } - virtual const QDict<UsedDir> *usedDirs() const { return m_usedDirs; } + virtual const UsedDirsContainer *usedDirs() const { return m_usedDirs; } virtual bool isParentOf(const DirDef *dir) const; virtual bool depGraphIsTrivial() const; virtual QCString shortTitle() const; @@ -79,7 +79,7 @@ class DirDefImpl : public DefinitionMixin<DirDef> int m_dirCount; int m_level; DirDef *m_parent; - QDict<UsedDir> *m_usedDirs; + UsedDirsContainer *m_usedDirs; }; DirDef *createDirDef(const char *path) @@ -117,8 +117,7 @@ DirDefImpl::DirDefImpl(const char *path) : DefinitionMixin(path,1,1,path) } m_fileList = new FileList; - m_usedDirs = new QDict<UsedDir>(257); - m_usedDirs->setAutoDelete(TRUE); + m_usedDirs = new UsedDirsContainer(); m_dirCount = g_dirCount++; m_level=-1; m_parent=0; @@ -127,6 +126,10 @@ DirDefImpl::DirDefImpl(const char *path) : DefinitionMixin(path,1,1,path) DirDefImpl::~DirDefImpl() { delete m_fileList; + for (const auto &usedDirectory : *m_usedDirs) + { + delete usedDirectory.second; + } delete m_usedDirs; } @@ -641,9 +644,11 @@ void DirDefImpl::addUsesDependency(DirDef *dir,FileDef *srcFd, // levels match => add direct dependency bool added=FALSE; - UsedDir *usedDir = m_usedDirs->find(dir->getOutputFileBase()); - if (usedDir) // dir dependency already present + UsedDir *usedDir = nullptr; + const auto usedDirectoryEntry = m_usedDirs->find(dir->getOutputFileBase()); + if (usedDirectoryEntry != m_usedDirs->end()) // dir dependency already present { + usedDir = usedDirectoryEntry->second; FilePair *usedPair = usedDir->findFilePair( srcFd->getOutputFileBase()+dstFd->getOutputFileBase()); if (usedPair==0) // new file dependency @@ -662,7 +667,7 @@ void DirDefImpl::addUsesDependency(DirDef *dir,FileDef *srcFd, //printf(" => new file\n"); usedDir = new UsedDir(dir,inherited); usedDir->addFileDep(srcFd,dstFd); - m_usedDirs->insert(dir->getOutputFileBase(),usedDir); + m_usedDirs->insert({dir->getOutputFileBase(),usedDir}); added=TRUE; } if (added) @@ -719,11 +724,9 @@ void DirDefImpl::computeDependencies() } if (m_usedDirs) { - QDictIterator<UsedDir> udi(*m_usedDirs); - UsedDir *udir; - for (udi.toFirst();(udir=udi.current());++udi) + for(const auto& usedDirectory : *m_usedDirs) { - udir->sort(); + usedDirectory.second->sort(); } } } @@ -740,7 +743,7 @@ bool DirDefImpl::isParentOf(const DirDef *dir) const bool DirDefImpl::depGraphIsTrivial() const { - return m_usedDirs->count()==0; + return m_usedDirs->empty(); } //---------------------------------------------------------------------- diff --git a/src/dirdef.h b/src/dirdef.h index 1057049..e7d0c6d 100644 --- a/src/dirdef.h +++ b/src/dirdef.h @@ -20,6 +20,7 @@ #include "definition.h" #include <vector> +#include <map> #include <qglobal.h> #include <qcstring.h> @@ -43,6 +44,8 @@ class DirDef : public DefinitionMutable, public Definition public: virtual ~DirDef() {} + using UsedDirsContainer = std::map<QCString, UsedDir * >; + // accessors virtual DefType definitionType() const = 0; virtual QCString getOutputFileBase() const = 0; @@ -59,7 +62,7 @@ class DirDef : public DefinitionMutable, public Definition virtual int level() const = 0; virtual DirDef *parent() const = 0; virtual int dirCount() const = 0; - virtual const QDict<UsedDir> *usedDirs() const = 0; + virtual const UsedDirsContainer* usedDirs() const = 0; virtual bool isParentOf(const DirDef *dir) const = 0; virtual bool depGraphIsTrivial() const = 0; virtual QCString shortTitle() const = 0; diff --git a/src/dotdirdeps.cpp b/src/dotdirdeps.cpp index c0e4712..2a292df 100644 --- a/src/dotdirdeps.cpp +++ b/src/dotdirdeps.cpp @@ -89,13 +89,11 @@ void writeDotDirDepGraph(FTextStream &t,const DirDef *dd,bool linkRelations) // add nodes for other used directories { - QDictIterator<UsedDir> udi(*dd->usedDirs()); - UsedDir *udir; //printf("*** For dir %s\n",shortName().data()); - for (udi.toFirst();(udir=udi.current());++udi) + for (const auto &usedDirectoryEntry : *dd->usedDirs()) // for each used dir (=directly used or a parent of a directly used dir) { - const DirDef *usedDir=udir->dir(); + const DirDef *usedDir = usedDirectoryEntry.second->dir(); const DirDef *dir=dd; while (dir) { @@ -135,10 +133,9 @@ void writeDotDirDepGraph(FTextStream &t,const DirDef *dd,bool linkRelations) QDictIterator<DirDef> di(dirsInGraph); for (;(dir=di.current());++di) // foreach dir in the graph { - QDictIterator<UsedDir> udi(*dir->usedDirs()); - UsedDir *udir; - for (udi.toFirst();(udir=udi.current());++udi) // foreach used dir + for (const auto &usedDirectoryEntry : *dir->usedDirs()) { + UsedDir *const udir = usedDirectoryEntry.second; const DirDef *usedDir=udir->dir(); if ((dir!=dd || !udir->inherited()) && // only show direct dependencies for this dir (usedDir!=dd || !udir->inherited()) && // only show direct dependencies for this dir |