summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dirdef.cpp27
-rw-r--r--src/dirdef.h5
-rw-r--r--src/dotdirdeps.cpp11
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