summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/classdef.cpp25
-rw-r--r--src/classdef.h2
-rw-r--r--src/context.cpp34
-rw-r--r--src/dirdef.cpp65
-rw-r--r--src/dirdef.h4
-rw-r--r--src/dotgroupcollaboration.cpp11
-rw-r--r--src/filedef.cpp7
-rw-r--r--src/filedef.h23
-rw-r--r--src/groupdef.cpp34
-rw-r--r--src/groupdef.h2
-rw-r--r--src/index.cpp44
-rw-r--r--src/namespacedef.cpp8
-rw-r--r--src/perlmodgen.cpp7
-rw-r--r--src/sqlite3gen.cpp17
-rw-r--r--src/xmlgen.cpp13
15 files changed, 113 insertions, 183 deletions
diff --git a/src/classdef.cpp b/src/classdef.cpp
index 8af0b1c..625f70f 100644
--- a/src/classdef.cpp
+++ b/src/classdef.cpp
@@ -248,7 +248,7 @@ class ClassDefImpl : public DefinitionMixin<ClassDefMutable>
virtual void insertSubClass(ClassDef *,Protection p,Specifier s,const char *t=0);
virtual void setIncludeFile(FileDef *fd,const char *incName,bool local,bool force);
virtual void insertMember(MemberDef *);
- virtual void insertUsedFile(FileDef *);
+ virtual void insertUsedFile(const FileDef *);
virtual bool addExample(const char *anchor,const char *name, const char *file);
virtual void mergeCategory(ClassDef *category);
virtual void setNamespace(NamespaceDef *nd);
@@ -1177,10 +1177,14 @@ void ClassDefImpl::findSectionsInDocumentation()
// add a file name to the used files set
-void ClassDefImpl::insertUsedFile(FileDef *fd)
+void ClassDefImpl::insertUsedFile(const FileDef *fd)
{
if (fd==0) return;
- if (m_impl->files.find(fd)==-1) m_impl->files.append(fd);
+ auto it = std::find(m_impl->files.begin(),m_impl->files.end(),fd);
+ if (it==m_impl->files.end())
+ {
+ m_impl->files.push_back(fd);
+ }
for (const auto &ti : m_impl->templateInstances)
{
ClassDefMutable *cdm = toClassDefMutable(ti.classDef);
@@ -1454,29 +1458,30 @@ QCString ClassDefImpl::generatedFromFiles() const
{
QCString result;
SrcLangExt lang = getLanguage();
+ size_t numFiles = m_impl->files.size();
if (lang==SrcLangExt_Fortran)
{
result = theTranslator->trGeneratedFromFilesFortran(
getLanguage()==SrcLangExt_ObjC && m_impl->compType==Interface ? Class : m_impl->compType,
- m_impl->files.count()==1);
+ numFiles==1);
}
else if (isJavaEnum())
{
- result = theTranslator->trEnumGeneratedFromFiles(m_impl->files.count()==1);
+ result = theTranslator->trEnumGeneratedFromFiles(numFiles==1);
}
else if (m_impl->compType==Service)
{
- result = theTranslator->trServiceGeneratedFromFiles(m_impl->files.count()==1);
+ result = theTranslator->trServiceGeneratedFromFiles(numFiles==1);
}
else if (m_impl->compType==Singleton)
{
- result = theTranslator->trSingletonGeneratedFromFiles(m_impl->files.count()==1);
+ result = theTranslator->trSingletonGeneratedFromFiles(numFiles==1);
}
else
{
result = theTranslator->trGeneratedFromFiles(
getLanguage()==SrcLangExt_ObjC && m_impl->compType==Interface ? Class : m_impl->compType,
- m_impl->files.count()==1);
+ numFiles==1);
}
return result;
}
@@ -1499,9 +1504,7 @@ void ClassDefImpl::showUsedFiles(OutputList &ol) const
ol.enable(OutputGenerator::Docbook);
bool first=TRUE;
- QListIterator<FileDef> li(m_impl->files);
- FileDef *fd;
- for (;(fd=li.current());++li)
+ for (const auto &fd : m_impl->files)
{
if (first)
{
diff --git a/src/classdef.h b/src/classdef.h
index 95b1b31..ea14675 100644
--- a/src/classdef.h
+++ b/src/classdef.h
@@ -414,7 +414,7 @@ class ClassDefMutable : public DefinitionMutable, public ClassDef
virtual void insertBaseClass(ClassDef *,const char *name,Protection p,Specifier s,const char *t=0) = 0;
virtual void insertSubClass(ClassDef *,Protection p,Specifier s,const char *t=0) = 0;
virtual void insertMember(MemberDef *) = 0;
- virtual void insertUsedFile(FileDef *) = 0;
+ virtual void insertUsedFile(const FileDef *) = 0;
virtual void addMembersToTemplateInstance(const ClassDef *cd,const ArgumentList &templateArguments,const char *templSpec) = 0;
virtual void addInnerCompound(const Definition *d) = 0;
virtual bool addExample(const char *anchor,const char *name, const char *file) = 0;
diff --git a/src/context.cpp b/src/context.cpp
index fe7bfa6..87887ff 100644
--- a/src/context.cpp
+++ b/src/context.cpp
@@ -3476,16 +3476,10 @@ class DirContext::Private : public DefinitionContext<DirContext::Private>
if (!cache.files)
{
cache.files.reset(TemplateList::alloc());
- FileList *files = m_dirDef->getFiles();
- if (files)
+ for (const auto &fd : m_dirDef->getFiles())
{
- QListIterator<FileDef> it(*files);
- const FileDef *fd;
- for (it.toFirst();(fd=it.current());++it)
- {
- FileContext *fc = FileContext::alloc(fd);
- cache.files->append(fc);
- }
+ FileContext *fc = FileContext::alloc(fd);
+ cache.files->append(fc);
}
}
return cache.files.get();
@@ -5401,14 +5395,9 @@ class ModuleContext::Private : public DefinitionContext<ModuleContext::Private>
if (!cache.files)
{
TemplateList *fileList = TemplateList::alloc();
- if (m_groupDef->getFiles())
+ for (const auto &fd : m_groupDef->getFiles())
{
- QListIterator<FileDef> it(*m_groupDef->getFiles());
- const FileDef *fd;
- for (it.toFirst();(fd=it.current());++it)
- {
- fileList->append(FileContext::alloc(fd));
- }
+ fileList->append(FileContext::alloc(fd));
}
cache.files.reset(fileList);
}
@@ -6349,10 +6338,7 @@ class NestingNodeContext::Private
if (dd)
{
m_children->addDirs(dd->subDirs(),visitedClasses);
- if (dd && dd->getFiles())
- {
- m_children->addFiles(*dd->getFiles(),visitedClasses);
- }
+ m_children->addFiles(dd->getFiles(),visitedClasses);
}
}
void addPages(ClassDefSet &visitedClasses)
@@ -6528,9 +6514,7 @@ class NestingContext::Private : public GenericNodeListContext
}
void addFiles(const FileList &fList,ClassDefSet &visitedClasses)
{
- QListIterator<FileDef> li(fList);
- const FileDef *fd;
- for (li.toFirst();(fd=li.current());++li)
+ for (const auto &fd : fList)
{
append(NestingNodeContext::alloc(m_parent,fd,m_index,m_level,FALSE,FALSE,FALSE,visitedClasses));
m_index++;
@@ -7142,9 +7126,7 @@ UsedFilesContext::UsedFilesContext(const ClassDef *cd) : RefCountedContext("Used
p = new Private;
if (cd)
{
- QListIterator<FileDef> li(cd->usedFiles());
- const FileDef *fd;
- for (li.toFirst();(fd=li.current());++li)
+ for (const auto &fd : cd->usedFiles())
{
p->addFile(fd);
}
diff --git a/src/dirdef.cpp b/src/dirdef.cpp
index 148985b..5e5ca93 100644
--- a/src/dirdef.cpp
+++ b/src/dirdef.cpp
@@ -49,8 +49,8 @@ class DirDefImpl : public DefinitionMixin<DirDef>
virtual QCString displayName(bool=TRUE) const { return m_dispName; }
virtual const QCString &shortName() const { return m_shortName; }
virtual void addSubDir(DirDef *subdir);
- virtual FileList * getFiles() const { return m_fileList; }
- virtual void addFile(FileDef *fd);
+ virtual const FileList &getFiles() const { return m_fileList; }
+ virtual void addFile(const FileDef *fd);
virtual const DirList &subDirs() const { return m_subdirs; }
virtual bool isCluster() const { return m_subdirs.size()>0; }
virtual int level() const { return m_level; }
@@ -91,7 +91,7 @@ class DirDefImpl : public DefinitionMixin<DirDef>
QCString m_dispName;
QCString m_shortName;
QCString m_diskName;
- FileList *m_fileList; // list of files in the group
+ FileList m_fileList; // list of files in the group
int m_dirCount;
int m_level;
DirDef *m_parent;
@@ -132,7 +132,6 @@ DirDefImpl::DirDefImpl(const char *path) : DefinitionMixin(path,1,1,path)
m_dispName = m_dispName.left(m_dispName.length()-1);
}
- m_fileList = new FileList;
m_dirCount = g_dirCount++;
m_level=-1;
m_parent=0;
@@ -140,7 +139,6 @@ DirDefImpl::DirDefImpl(const char *path) : DefinitionMixin(path,1,1,path)
DirDefImpl::~DirDefImpl()
{
- delete m_fileList;
}
bool DirDefImpl::isLinkableInProject() const
@@ -165,16 +163,16 @@ void DirDefImpl::setParent(DirDef *p)
m_parent=p;
}
-void DirDefImpl::addFile(FileDef *fd)
+void DirDefImpl::addFile(const FileDef *fd)
{
- m_fileList->append(fd);
- fd->setDirDef(this);
+ m_fileList.push_back(fd);
+ const_cast<FileDef*>(fd)->setDirDef(this);
}
void DirDefImpl::sort()
{
std::sort(m_subdirs.begin(), m_subdirs.end(), compareDirDefs);
- m_fileList->sort();
+ std::sort(m_fileList.begin(), m_fileList.end(), compareFileDefs);
}
static QCString encodeDirName(const QCString &anchor)
@@ -326,7 +324,7 @@ void DirDefImpl::writeSubDirList(OutputList &ol)
int numSubdirs = 0;
for(const auto dd : m_subdirs)
{
- if (dd->hasDocumentation() || dd->getFiles()->count()>0)
+ if (dd->hasDocumentation() || !dd->getFiles().empty())
{
numSubdirs++;
}
@@ -341,7 +339,7 @@ void DirDefImpl::writeSubDirList(OutputList &ol)
ol.startMemberList();
for(const auto dd : m_subdirs)
{
- if (dd->hasDocumentation() || dd->getFiles()->count()==0)
+ if (dd->hasDocumentation() || dd->getFiles().empty())
{
ol.startMemberDeclaration();
ol.startMemberItem(dd->getOutputFileBase(),0);
@@ -373,9 +371,7 @@ void DirDefImpl::writeSubDirList(OutputList &ol)
void DirDefImpl::writeFileList(OutputList &ol)
{
int numFiles = 0;
- QListIterator<FileDef> it(*m_fileList);
- FileDef *fd;
- for (it.toFirst();(fd=it.current());++it)
+ for (const auto &fd : m_fileList)
{
if (fd->hasDocumentation())
{
@@ -390,7 +386,7 @@ void DirDefImpl::writeFileList(OutputList &ol)
ol.parseText(theTranslator->trFile(TRUE,FALSE));
ol.endMemberHeader();
ol.startMemberList();
- for (it.toFirst();(fd=it.current());++it)
+ for (const auto &fd : m_fileList)
{
if (fd->hasDocumentation())
{
@@ -485,14 +481,9 @@ void DirDefImpl::writeTagFile(FTextStream &tagFile)
break;
case LayoutDocEntry::DirFiles:
{
- if (m_fileList->count()>0)
+ for (const auto &fd : m_fileList)
{
- QListIterator<FileDef> it(*m_fileList);
- FileDef *fd;
- for (;(fd=it.current());++it)
- {
tagFile << " <file>" << convertToXML(fd->name()) << "</file>" << endl;
- }
}
}
break;
@@ -690,29 +681,23 @@ void DirDefImpl::addUsesDependency(const DirDef *dir,const FileDef *srcFd,
*/
void DirDefImpl::computeDependencies()
{
- FileList *fl = m_fileList;
- if (fl)
+ for (const auto &fd : m_fileList)
{
- QListIterator<FileDef> fli(*fl);
- FileDef *fd;
- for (fli.toFirst();(fd=fli.current());++fli) // foreach file in dir dd
+ //printf(" File %s\n",fd->name().data());
+ //printf("** dir=%s file=%s\n",shortName().data(),fd->name().data());
+ for (const auto &ii : fd->includeFileList())
{
- //printf(" File %s\n",fd->name().data());
- //printf("** dir=%s file=%s\n",shortName().data(),fd->name().data());
- for (const auto &ii : fd->includeFileList())
+ //printf(" > %s\n",ii->includeName.data());
+ //printf(" #include %s\n",ii->includeName.data());
+ if (ii.fileDef && ii.fileDef->isLinkable()) // linkable file
{
- //printf(" > %s\n",ii->includeName.data());
- //printf(" #include %s\n",ii->includeName.data());
- if (ii.fileDef && ii.fileDef->isLinkable()) // linkable file
+ DirDef *usedDir = ii.fileDef->getDirDef();
+ if (usedDir)
{
- DirDef *usedDir = ii.fileDef->getDirDef();
- if (usedDir)
- {
- // add dependency: thisDir->usedDir
- //static int count=0;
- //printf(" %d: add dependency %s->%s\n",count++,name().data(),usedDir->name().data());
- addUsesDependency(usedDir,fd,ii.fileDef,FALSE);
- }
+ // add dependency: thisDir->usedDir
+ //static int count=0;
+ //printf(" %d: add dependency %s->%s\n",count++,name().data(),usedDir->name().data());
+ addUsesDependency(usedDir,fd,ii.fileDef,FALSE);
}
}
}
diff --git a/src/dirdef.h b/src/dirdef.h
index 35bb4fd..d047a99 100644
--- a/src/dirdef.h
+++ b/src/dirdef.h
@@ -99,8 +99,8 @@ class DirDef : public DefinitionMutable, public Definition
virtual QCString displayName(bool=TRUE) const = 0;
virtual const QCString &shortName() const = 0;
virtual void addSubDir(DirDef *subdir) = 0;
- virtual FileList * getFiles() const = 0;
- virtual void addFile(FileDef *fd) = 0;
+ virtual const FileList &getFiles() const = 0;
+ virtual void addFile(const FileDef *fd) = 0;
virtual const DirList &subDirs() const = 0;
virtual bool isCluster() const = 0;
virtual int level() const = 0;
diff --git a/src/dotgroupcollaboration.cpp b/src/dotgroupcollaboration.cpp
index ff81ecc..a2db7d0 100644
--- a/src/dotgroupcollaboration.cpp
+++ b/src/dotgroupcollaboration.cpp
@@ -116,15 +116,10 @@ void DotGroupCollaboration::buildGraph(const GroupDef* gd)
}
// Add files
- if ( gd->getFiles() && gd->getFiles()->count() )
+ for (const auto &def : gd->getFiles())
{
- QListIterator<FileDef> defli(*gd->getFiles());
- const FileDef *def;
- for (;(def=defli.current());++defli)
- {
- tmp_url = def->getReference()+"$"+def->getOutputFileBase()+Doxygen::htmlFileExtension;
- addCollaborationMember( def, tmp_url, DotGroupCollaboration::tfile );
- }
+ tmp_url = def->getReference()+"$"+def->getOutputFileBase()+Doxygen::htmlFileExtension;
+ addCollaborationMember( def, tmp_url, DotGroupCollaboration::tfile );
}
// Add pages
diff --git a/src/filedef.cpp b/src/filedef.cpp
index 490b748..a512c40 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -1996,6 +1996,13 @@ int FileDefImpl::numDecMembers() const
return ml ? ml->numDecMembers() : 0;
}
+// -----------------------
+
+bool compareFileDefs(const FileDef *fd1, const FileDef *fd2)
+{
+ return qstricmp(fd1->name(),fd2->name()) < 0;
+}
+
// --- Cast functions
FileDef *toFileDef(Definition *d)
diff --git a/src/filedef.h b/src/filedef.h
index 27ede5f..3228b00 100644
--- a/src/filedef.h
+++ b/src/filedef.h
@@ -59,6 +59,8 @@ class IncludeInfoList : public std::vector<IncludeInfo>
{
};
+bool compareFileDefs(const FileDef *fd1, const FileDef *fd2);
+
/** A model of a file symbol.
*
* An object of this class contains all file information that is gathered.
@@ -197,20 +199,15 @@ const FileDef *toFileDef(const Definition *d);
// ------------------
-/** Class representing a list of FileDef objects. */
-class FileList : public QList<FileDef>
+class FileList : public std::vector<const FileDef *>
{
- public:
- FileList() : m_pathName("tmp") {}
- FileList(const char *path) : QList<FileDef>(), m_pathName(path) {}
- ~FileList() {}
- QCString path() const { return m_pathName; }
- private:
- int compareValues(const FileDef *md1,const FileDef *md2) const
- {
- return qstricmp(md1->name(),md2->name());
- }
- QCString m_pathName;
+};
+
+struct FilesInDir
+{
+ FilesInDir(const QCString &p) : path(p) {}
+ QCString path;
+ std::vector<const FileDef *> files;
};
/** Class representing an entry (file or sub directory) in a directory */
diff --git a/src/groupdef.cpp b/src/groupdef.cpp
index 6e5a074..4b2f623 100644
--- a/src/groupdef.cpp
+++ b/src/groupdef.cpp
@@ -100,7 +100,7 @@ class GroupDefImpl : public DefinitionMixin<GroupDef>
/* user defined member groups */
virtual const MemberGroupList &getMemberGroups() const { return m_memberGroups; }
- virtual FileList * getFiles() const { return m_fileList; }
+ virtual const FileList &getFiles() const { return m_fileList; }
virtual const ClassLinkedRefMap &getClasses() const { return m_classes; }
virtual const NamespaceLinkedRefMap &getNamespaces() const { return m_namespaces; }
virtual const GroupList &getSubGroups() const { return m_groups; }
@@ -138,7 +138,7 @@ class GroupDefImpl : public DefinitionMixin<GroupDef>
QCString m_title; // title of the group
bool m_titleSet; // true if title is not the same as the name
QCString m_fileName; // base name of the generated file
- FileList * m_fileList; // list of files in the group
+ FileList m_fileList; // list of files in the group
ClassLinkedRefMap m_classes; // list of classes in the group
NamespaceLinkedRefMap m_namespaces; // list of namespaces in the group
GroupList m_groups; // list of sub groups.
@@ -167,7 +167,6 @@ GroupDefImpl::GroupDefImpl(const char *df,int dl,const char *na,const char *t,
const char *refFileName) : DefinitionMixin(df,dl,1,na),
m_allMemberList(MemberListType_allMembersList)
{
- m_fileList = new FileList;
if (refFileName)
{
m_fileName=stripExtension(refFileName);
@@ -185,7 +184,6 @@ GroupDefImpl::GroupDefImpl(const char *df,int dl,const char *na,const char *t,
GroupDefImpl::~GroupDefImpl()
{
- delete m_fileList;
}
void GroupDefImpl::setGroupTitle( const char *t )
@@ -237,9 +235,12 @@ void GroupDefImpl::addFile(const FileDef *def)
if (def->isHidden()) return;
updateLanguage(def);
if (sortBriefDocs)
- m_fileList->inSort(def);
+ m_fileList.insert( std::upper_bound( m_fileList.begin(), m_fileList.end(), def,
+ [](const auto &fd1, const auto &fd2)
+ { return qstricmp(fd1->name(),fd2->name())<0; }),
+ def);
else
- m_fileList->append(def);
+ m_fileList.push_back(def);
}
bool GroupDefImpl::addClass(const ClassDef *cd)
@@ -579,7 +580,7 @@ void GroupDefImpl::countMembers()
size_t GroupDefImpl::numDocMembers() const
{
- return m_fileList->count()+
+ return m_fileList.size()+
m_classes.size()+
m_namespaces.size()+
m_groups.size()+
@@ -631,16 +632,11 @@ void GroupDefImpl::writeTagFile(FTextStream &tagFile)
break;
case LayoutDocEntry::GroupFiles:
{
- if (m_fileList)
+ for (const auto &fd : m_fileList)
{
- QListIterator<FileDef> it(*m_fileList);
- FileDef *fd;
- for (;(fd=it.current());++it)
+ if (fd->isLinkableInProject())
{
- if (fd->isLinkableInProject())
- {
- tagFile << " <file>" << convertToXML(fd->name()) << "</file>" << endl;
- }
+ tagFile << " <file>" << convertToXML(fd->name()) << "</file>" << endl;
}
}
}
@@ -827,15 +823,13 @@ void GroupDefImpl::writeGroupGraph(OutputList &ol)
void GroupDefImpl::writeFiles(OutputList &ol,const QCString &title)
{
// write list of files
- if (m_fileList->count()>0)
+ if (!m_fileList.empty())
{
ol.startMemberHeader("files");
ol.parseText(title);
ol.endMemberHeader();
ol.startMemberList();
- QListIterator<FileDef> it(*m_fileList);
- FileDef *fd;
- for (;(fd=it.current());++it)
+ for (const auto &fd : m_fileList)
{
if (!fd->hasDocumentation()) continue;
ol.startMemberDeclaration();
@@ -1030,7 +1024,7 @@ void GroupDefImpl::writeSummaryLinks(OutputList &ol) const
{
if ((lde->kind()==LayoutDocEntry::GroupClasses && m_classes.declVisible()) ||
(lde->kind()==LayoutDocEntry::GroupNamespaces && m_namespaces.declVisible()) ||
- (lde->kind()==LayoutDocEntry::GroupFiles && m_fileList->count()>0) ||
+ (lde->kind()==LayoutDocEntry::GroupFiles && !m_fileList.empty()) ||
(lde->kind()==LayoutDocEntry::GroupNestedGroups && !m_groups.empty()) ||
(lde->kind()==LayoutDocEntry::GroupDirs && !m_dirList.empty())
)
diff --git a/src/groupdef.h b/src/groupdef.h
index c05d524..94214c4 100644
--- a/src/groupdef.h
+++ b/src/groupdef.h
@@ -95,7 +95,7 @@ class GroupDef : public DefinitionMutable, public Definition
/* user defined member groups */
virtual const MemberGroupList &getMemberGroups() const = 0;
- virtual FileList * getFiles() const = 0;
+ virtual const FileList &getFiles() const = 0;
virtual const ClassLinkedRefMap &getClasses() const = 0;
virtual const NamespaceLinkedRefMap &getNamespaces() const = 0;
virtual const GroupList &getSubGroups() const = 0;
diff --git a/src/index.cpp b/src/index.cpp
index 52f6c5d..4791ed5 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -533,9 +533,7 @@ static bool dirHasVisibleChildren(const DirDef *dd)
{
if (dd->hasDocumentation()) return TRUE;
- QListIterator<FileDef> fli(*dd->getFiles());
- FileDef *fd;
- for (fli.toFirst();(fd=fli.current());++fli)
+ for (const auto &fd : dd->getFiles())
{
bool genSourceFile;
if (fileVisibleInIndex(fd,genSourceFile))
@@ -576,9 +574,9 @@ static void writeDirTreeNode(OutputList &ol, const DirDef *dd, int level, FTVHel
}
static bool tocExpand = TRUE; //Config_getBool(TOC_EXPAND);
- bool isDir = dd->subDirs().size()>0 || // there are subdirs
+ bool isDir = !dd->subDirs().empty() || // there are subdirs
(tocExpand && // or toc expand and
- dd->getFiles() && dd->getFiles()->count()>0 // there are files
+ !dd->getFiles().empty() // there are files
);
//printf("gd='%s': pageDict=%d\n",gd->name().data(),gd->pageDict->count());
if (addToIndex)
@@ -615,13 +613,10 @@ static void writeDirTreeNode(OutputList &ol, const DirDef *dd, int level, FTVHel
endIndexHierarchy(ol,level+1);
}
- FileList *fileList=dd->getFiles();
int fileCount=0;
- if (fileList && fileList->count()>0)
+ if (!dd->getFiles().empty())
{
- QListIterator<FileDef> it(*fileList);
- FileDef *fd;
- for (;(fd=it.current());++it)
+ for (const auto &fd : dd->getFiles())
{
//static bool allExternals = Config_getBool(ALLEXTERNALS);
//if ((allExternals && fd->isLinkable()) || fd->isLinkableInProject())
@@ -641,7 +636,7 @@ static void writeDirTreeNode(OutputList &ol, const DirDef *dd, int level, FTVHel
if (fileCount>0)
{
startIndexHierarchy(ol,level+1);
- for (it.toFirst();(fd=it.current());++it)
+ for (const auto &fd : dd->getFiles())
{
bool doc,src;
doc = fileVisibleInIndex(fd,src);
@@ -677,9 +672,7 @@ static void writeDirTreeNode(OutputList &ol, const DirDef *dd, int level, FTVHel
// write files of this directory
if (fileCount>0)
{
- QListIterator<FileDef> it(*fileList);
- FileDef *fd;
- for (;(fd=it.current());++it)
+ for (const auto &fd : dd->getFiles())
{
//static bool allExternals = Config_getBool(ALLEXTERNALS);
//if ((allExternals && fd->isLinkable()) || fd->isLinkableInProject())
@@ -1407,14 +1400,7 @@ static void writeFileIndex(OutputList &ol)
ol.startIndexList();
if (Config_getBool(FULL_PATH_NAMES))
{
- struct FilesInDir
- {
- FilesInDir(const QCString &p) : path(p) {}
- QCString path;
- std::vector<const FileDef *> files;
- };
-
- std::unordered_map<std::string,std::vector<FilesInDir>::iterator> pathMap;
+ std::unordered_map<std::string,size_t> pathMap;
std::vector<FilesInDir> outputFiles;
// re-sort input files in (dir,file) output order instead of (file,dir) input order
@@ -1427,12 +1413,12 @@ static void writeFileIndex(OutputList &ol)
auto it = pathMap.find(path.str());
if (it!=pathMap.end())
{
- it->second->files.push_back(fd.get());
+ outputFiles.at(it->second).files.push_back(fd.get());
}
else
{
+ pathMap.insert(std::make_pair(path.str(),outputFiles.size()));
outputFiles.emplace_back(path);
- pathMap.insert(std::make_pair(path.str(),outputFiles.end()-1));
}
}
}
@@ -1443,9 +1429,7 @@ static void writeFileIndex(OutputList &ol)
// sort the files inside the directory by name
for (auto &fp : outputFiles)
{
- std::sort(fp.files.begin(),
- fp.files.end(),
- [](const auto &fd1,const auto &fd2) { return qstricmp(fd1->name(),fd2->name()); });
+ std::sort(fp.files.begin(), fp.files.end(), compareFileDefs);
}
// write the results
for (const auto &fp : outputFiles)
@@ -3759,7 +3743,7 @@ static void writeGroupTreeNode(OutputList &ol, const GroupDef *gd, int level, FT
}
numSubItems += gd->getNamespaces().size();
numSubItems += gd->getClasses().size();
- numSubItems += gd->getFiles()->count();
+ numSubItems += gd->getFiles().size();
numSubItems += gd->getDirs().size();
numSubItems += gd->getPages().size();
}
@@ -3869,9 +3853,7 @@ static void writeGroupTreeNode(OutputList &ol, const GroupDef *gd, int level, FT
}
else if (lde->kind()==LayoutDocEntry::GroupFiles && addToIndex)
{
- QListIterator<FileDef> it(*gd->getFiles());
- FileDef *fd;
- for (;(fd=it.current());++it)
+ for (const auto &fd : gd->getFiles())
{
if (fd->isVisible())
{
diff --git a/src/namespacedef.cpp b/src/namespacedef.cpp
index d28f783..7acd463 100644
--- a/src/namespacedef.cpp
+++ b/src/namespacedef.cpp
@@ -327,12 +327,10 @@ void NamespaceDefImpl::findSectionsInDocumentation()
void NamespaceDefImpl::insertUsedFile(FileDef *fd)
{
if (fd==0) return;
- if (files.find(fd)==-1)
+ auto it = std::find(files.begin(),files.end(),fd);
+ if (it==files.end())
{
- if (Config_getBool(SORT_MEMBER_DOCS))
- files.inSort(fd);
- else
- files.append(fd);
+ files.push_back(fd);
}
}
diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp
index f74a003..95a0679 100644
--- a/src/perlmodgen.cpp
+++ b/src/perlmodgen.cpp
@@ -2066,13 +2066,10 @@ void PerlModGenerator::generatePerlModForGroup(const GroupDef *gd)
.addFieldQuotedString("name", gd->name())
.addFieldQuotedString("title", gd->groupTitle());
- FileList *fl = gd->getFiles();
- if (fl)
+ if (!gd->getFiles().empty())
{
m_output.openList("files");
- QListIterator<FileDef> fli(*fl);
- const FileDef *fd;
- for (fli.toFirst();(fd=fli.current());++fli)
+ for (const auto &fd : gd->getFiles())
m_output.openHash()
.addFieldQuotedString("name", fd->name())
.closeHash();
diff --git a/src/sqlite3gen.cpp b/src/sqlite3gen.cpp
index 5cee785..3c021a6 100644
--- a/src/sqlite3gen.cpp
+++ b/src/sqlite3gen.cpp
@@ -1296,20 +1296,15 @@ static void writeInnerGroups(const GroupList &gl, struct Refid outer_refid)
}
}
-static void writeInnerFiles(const FileList *fl, struct Refid outer_refid)
+static void writeInnerFiles(const FileList &fl, struct Refid outer_refid)
{
- if (fl)
+ for (const auto &fd: fl)
{
- QListIterator<FileDef> fli(*fl);
- const FileDef *fd;
- for (fli.toFirst();(fd=fli.current());++fli)
- {
- struct Refid inner_refid = insertRefid(fd->getOutputFileBase());
+ struct Refid inner_refid = insertRefid(fd->getOutputFileBase());
- bindIntParameter(contains_insert,":inner_rowid", inner_refid.rowid);
- bindIntParameter(contains_insert,":outer_rowid", outer_refid.rowid);
- step(contains_insert);
- }
+ bindIntParameter(contains_insert,":inner_rowid", inner_refid.rowid);
+ bindIntParameter(contains_insert,":outer_rowid", outer_refid.rowid);
+ step(contains_insert);
}
}
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index 61fba77..e8bb9e7 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -1153,17 +1153,12 @@ static void writeInnerNamespaces(const NamespaceLinkedRefMap &nl,FTextStream &t)
}
}
-static void writeInnerFiles(const FileList *fl,FTextStream &t)
+static void writeInnerFiles(const FileList &fl,FTextStream &t)
{
- if (fl)
+ for (const auto &fd : fl)
{
- QListIterator<FileDef> fli(*fl);
- FileDef *fd;
- for (fli.toFirst();(fd=fli.current());++fli)
- {
- t << " <innerfile refid=\"" << fd->getOutputFileBase()
- << "\">" << convertToXML(fd->name()) << "</innerfile>" << endl;
- }
+ t << " <innerfile refid=\"" << fd->getOutputFileBase()
+ << "\">" << convertToXML(fd->name()) << "</innerfile>" << endl;
}
}