summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/code.l2
-rw-r--r--src/context.cpp72
-rw-r--r--src/context.h4
-rw-r--r--src/docbookgen.cpp14
-rw-r--r--src/docparser.cpp2
-rw-r--r--src/doxygen.cpp127
-rw-r--r--src/doxygen.h4
-rw-r--r--src/fortrancode.l2
-rw-r--r--src/index.cpp30
-rw-r--r--src/latexgen.cpp39
-rw-r--r--src/namespacedef.h53
-rw-r--r--src/perlmodgen.cpp6
-rw-r--r--src/rtfgen.cpp45
-rw-r--r--src/searchindex.cpp8
-rw-r--r--src/sqlite3gen.cpp6
-rw-r--r--src/util.cpp12
-rw-r--r--src/xmlgen.cpp6
17 files changed, 150 insertions, 282 deletions
diff --git a/src/code.l b/src/code.l
index df4dd53..94a7bcd 100644
--- a/src/code.l
+++ b/src/code.l
@@ -2530,7 +2530,7 @@ static void addUsingDirective(yyscan_t yyscanner,const char *name)
struct yyguts_t *yyg = (struct yyguts_t*)yyscanner;
if (yyextra->sourceFileDef && name)
{
- const NamespaceDef *nd = Doxygen::namespaceSDict->find(name);
+ const NamespaceDef *nd = Doxygen::namespaceLinkedMap->find(name);
if (nd)
{
yyextra->sourceFileDef->addUsingDirective(nd);
diff --git a/src/context.cpp b/src/context.cpp
index 8c6de66..b7a547f 100644
--- a/src/context.cpp
+++ b/src/context.cpp
@@ -6465,42 +6465,33 @@ class NestingContext::Private : public GenericNodeListContext
Private(const NestingNodeContext *parent,int level)
: m_parent(parent), m_level(level), m_index(0) {}
- void addNamespaces(const NamespaceSDict &nsDict,bool rootOnly,bool addClasses,ClassDefSet &visitedClasses)
+ void addNamespace(const NamespaceDef *nd,bool rootOnly,bool addClasses,ClassDefSet &visitedClasses)
{
- NamespaceSDict::Iterator nli(nsDict);
- const NamespaceDef *nd;
- for (nli.toFirst();(nd=nli.current());++nli)
+ if (!nd->isAnonymous() &&
+ (!rootOnly || nd->getOuterScope()==Doxygen::globalScope))
{
- if (!nd->isAnonymous() &&
- (!rootOnly || nd->getOuterScope()==Doxygen::globalScope))
+ bool hasChildren = namespaceHasNestedNamespace(nd);
+ bool isLinkable = nd->isLinkableInProject();
+ if (isLinkable || hasChildren)
{
- bool hasChildren = namespaceHasNestedNamespace(nd);
- bool isLinkable = nd->isLinkableInProject();
- if (isLinkable || hasChildren)
- {
- NestingNodeContext *nnc = NestingNodeContext::alloc(m_parent,nd,m_index,m_level,addClasses,FALSE,FALSE,visitedClasses);
- append(nnc);
- m_index++;
- }
+ NestingNodeContext *nnc = NestingNodeContext::alloc(m_parent,nd,m_index,m_level,addClasses,FALSE,FALSE,visitedClasses);
+ append(nnc);
+ m_index++;
}
}
}
+ void addNamespaces(const NamespaceLinkedMap &nsLinkedMap,bool rootOnly,bool addClasses,ClassDefSet &visitedClasses)
+ {
+ for (const auto &nd : nsLinkedMap)
+ {
+ addNamespace(nd.get(),rootOnly,addClasses,visitedClasses);
+ }
+ }
void addNamespaces(const NamespaceLinkedRefMap &nsLinkedMap,bool rootOnly,bool addClasses,ClassDefSet &visitedClasses)
{
for (const auto &nd : nsLinkedMap)
{
- if (!nd->isAnonymous() &&
- (!rootOnly || nd->getOuterScope()==Doxygen::globalScope))
- {
- bool hasChildren = namespaceHasNestedNamespace(nd);
- bool isLinkable = nd->isLinkableInProject();
- if (isLinkable || hasChildren)
- {
- NestingNodeContext *nnc = NestingNodeContext::alloc(m_parent,nd,m_index,m_level,addClasses,FALSE,FALSE,visitedClasses);
- append(nnc);
- m_index++;
- }
- }
+ addNamespace(nd,rootOnly,addClasses,visitedClasses);
}
}
void addClass(const ClassDef *cd,bool rootOnly,ClassDefSet &visitedClasses)
@@ -6730,9 +6721,9 @@ void NestingContext::addClasses(const ClassLinkedMap &clLinkedMap,bool rootOnly,
p->addClasses(clLinkedMap,rootOnly,visitedClasses);
}
-void NestingContext::addNamespaces(const NamespaceSDict &nsDict,bool rootOnly,bool addClasses,ClassDefSet &visitedClasses)
+void NestingContext::addNamespaces(const NamespaceLinkedMap &nsLinkedMap,bool rootOnly,bool addClasses,ClassDefSet &visitedClasses)
{
- p->addNamespaces(nsDict,rootOnly,addClasses,visitedClasses);
+ p->addNamespaces(nsLinkedMap,rootOnly,addClasses,visitedClasses);
}
void NestingContext::addNamespaces(const NamespaceLinkedRefMap &nsLinkedRefMap,bool rootOnly,bool addClasses,ClassDefSet &visitedClasses)
@@ -6796,14 +6787,8 @@ class ClassTreeContext::Private
{
m_classTree.reset(NestingContext::alloc(0,0));
ClassDefSet visitedClasses;
- if (Doxygen::namespaceSDict)
- {
- m_classTree->addNamespaces(*Doxygen::namespaceSDict,TRUE,TRUE,visitedClasses);
- }
- if (Doxygen::classLinkedMap)
- {
- m_classTree->addClasses(*Doxygen::classLinkedMap,TRUE,visitedClasses);
- }
+ m_classTree->addNamespaces(*Doxygen::namespaceLinkedMap,TRUE,TRUE,visitedClasses);
+ m_classTree->addClasses(*Doxygen::classLinkedMap,TRUE,visitedClasses);
//%% Nesting tree
static bool init=FALSE;
if (!init)
@@ -6917,15 +6902,13 @@ TemplateVariant ClassTreeContext::get(const char *name) const
class NamespaceListContext::Private : public GenericNodeListContext
{
public:
- void addNamespaces(const NamespaceSDict &nsDict)
+ void addNamespaces(const NamespaceLinkedMap &nsLinkedMap)
{
- NamespaceSDict::Iterator nli(nsDict);
- const NamespaceDef *nd;
- for (nli.toFirst();(nd=nli.current());++nli)
+ for (const auto &nd : nsLinkedMap)
{
if (nd->isLinkableInProject())
{
- append(NamespaceContext::alloc(nd));
+ append(NamespaceContext::alloc(nd.get()));
}
}
}
@@ -6934,7 +6917,7 @@ class NamespaceListContext::Private : public GenericNodeListContext
NamespaceListContext::NamespaceListContext() : RefCountedContext("NamespaceListContext")
{
p = new Private;
- p->addNamespaces(*Doxygen::namespaceSDict);
+ p->addNamespaces(*Doxygen::namespaceLinkedMap);
}
NamespaceListContext::~NamespaceListContext()
@@ -6969,10 +6952,7 @@ class NamespaceTreeContext::Private
{
m_namespaceTree.reset(NestingContext::alloc(0,0));
ClassDefSet visitedClasses;
- if (Doxygen::namespaceSDict)
- {
- m_namespaceTree->addNamespaces(*Doxygen::namespaceSDict,TRUE,FALSE,visitedClasses);
- }
+ m_namespaceTree->addNamespaces(*Doxygen::namespaceLinkedMap,TRUE,FALSE,visitedClasses);
//%% Nesting tree
static bool init=FALSE;
if (!init)
diff --git a/src/context.h b/src/context.h
index 25ce78b..1a2df8c 100644
--- a/src/context.h
+++ b/src/context.h
@@ -27,7 +27,7 @@ class Definition;
class PageDef;
class GroupDef;
class NamespaceDef;
-class NamespaceSDict;
+class NamespaceLinkedMap;
class NamespaceLinkedRefMap;
class FileDef;
class FileList;
@@ -545,7 +545,7 @@ class NestingContext : public RefCountedContext, public TemplateListIntf
virtual int addRef() { return RefCountedContext::addRef(); }
virtual int release() { return RefCountedContext::release(); }
- void addNamespaces(const NamespaceSDict &nsDict,bool rootOnly,bool addClasses,ClassDefSet &visitedClasses);
+ void addNamespaces(const NamespaceLinkedMap &nsLinkedMap,bool rootOnly,bool addClasses,ClassDefSet &visitedClasses);
void addNamespaces(const NamespaceLinkedRefMap &nsLinkedMap,bool rootOnly,bool addClasses,ClassDefSet &visitedClasses);
void addClasses(const ClassLinkedRefMap &clLinkedMap,bool rootOnly,ClassDefSet &visitedClasses);
void addClasses(const ClassLinkedMap &clLinkedMap,bool rootOnly,ClassDefSet &visitedClasses);
diff --git a/src/docbookgen.cpp b/src/docbookgen.cpp
index d378703..2d0521b 100644
--- a/src/docbookgen.cpp
+++ b/src/docbookgen.cpp
@@ -532,24 +532,12 @@ DB_GEN_C2("IndexSections " << is)
case isNamespaceDocumentation:
{
t << "</title>" << endl;
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
- bool found=FALSE;
- for (nli.toFirst();(nd=nli.current()) && !found;++nli)
- {
- if (nd->isLinkableInProject() && !nd->isAlias())
- {
- t << "<xi:include href=\"" << nd->getOutputFileBase() << ".xml\" xmlns:xi=\"http://www.w3.org/2001/XInclude\"/>" << endl;
- found=TRUE;
- }
- }
- while ((nd=nli.current()))
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
if (nd->isLinkableInProject() && !nd->isAlias())
{
t << "<xi:include href=\"" << nd->getOutputFileBase() << ".xml\" xmlns:xi=\"http://www.w3.org/2001/XInclude\"/>" << endl;
}
- ++nli;
}
}
t << "</chapter>\n";
diff --git a/src/docparser.cpp b/src/docparser.cpp
index 9a71cf7..af9e6a8 100644
--- a/src/docparser.cpp
+++ b/src/docparser.cpp
@@ -778,7 +778,7 @@ static bool findDocsForMemberOrCompound(const char *commandName,
*pDef=cd;
return TRUE;
}
- nd = Doxygen::namespaceSDict->find(fullName);
+ nd = Doxygen::namespaceLinkedMap->find(fullName);
if (nd) // namespace
{
*pDoc=nd->documentation();
diff --git a/src/doxygen.cpp b/src/doxygen.cpp
index f8bb5d5..3381323 100644
--- a/src/doxygen.cpp
+++ b/src/doxygen.cpp
@@ -119,7 +119,7 @@ extern void initResources();
// globally accessible variables
ClassLinkedMap *Doxygen::classLinkedMap = 0;
ClassLinkedMap *Doxygen::hiddenClassLinkedMap = 0;
-NamespaceSDict *Doxygen::namespaceSDict = 0;
+NamespaceLinkedMap *Doxygen::namespaceLinkedMap = 0;
MemberNameLinkedMap *Doxygen::memberNameLinkedMap = 0;
MemberNameLinkedMap *Doxygen::functionNameLinkedMap = 0;
FileNameLinkedMap *Doxygen::inputNameLinkedMap = 0;
@@ -182,7 +182,7 @@ void clearAll()
Doxygen::classLinkedMap->clear();
Doxygen::hiddenClassLinkedMap->clear();
- Doxygen::namespaceSDict->clear();
+ Doxygen::namespaceLinkedMap->clear();
Doxygen::pageSDict->clear();
Doxygen::exampleSDict->clear();
Doxygen::inputNameLinkedMap->clear();
@@ -732,7 +732,7 @@ static Definition *buildScopeFromQualifiedName(const QCString name,
if (nsName.isEmpty()) return prevScope;
if (!fullScope.isEmpty()) fullScope+="::";
fullScope+=nsName;
- NamespaceDef *nd=Doxygen::namespaceSDict->find(fullScope);
+ NamespaceDef *nd=Doxygen::namespaceLinkedMap->find(fullScope);
DefinitionMutable *innerScope = toDefinitionMutable(nd);
ClassDef *cd=0;
if (nd==0) cd = getClass(fullScope);
@@ -744,14 +744,17 @@ static Definition *buildScopeFromQualifiedName(const QCString name,
{
// introduce bogus namespace
//printf("++ adding dummy namespace %s to %s tagInfo=%p\n",nsName.data(),prevScope->name().data(),tagInfo);
- NamespaceDefMutable *newNd=createNamespaceDef(
- "[generated]",1,1,fullScope,
- tagInfo?tagInfo->tagName:QCString(),
- tagInfo?tagInfo->fileName:QCString());
+ NamespaceDefMutable *newNd=
+ toNamespaceDefMutable(
+ Doxygen::namespaceLinkedMap->add(fullScope,
+ std::unique_ptr<NamespaceDef>(
+ createNamespaceDef(
+ "[generated]",1,1,fullScope,
+ tagInfo?tagInfo->tagName:QCString(),
+ tagInfo?tagInfo->fileName:QCString()))));
newNd->setLanguage(lang);
// add namespace to the list
- Doxygen::namespaceSDict->inSort(fullScope,newNd);
innerScope = newNd;
}
else // scope is a namespace
@@ -874,7 +877,7 @@ std::unique_ptr<ArgumentList> getTemplateArgumentsFromName(
auto alIt = tArgLists.begin();
while ((i=name.find("::",p))!=-1 && alIt!=tArgLists.end())
{
- NamespaceDef *nd = Doxygen::namespaceSDict->find(name.left(i));
+ NamespaceDef *nd = Doxygen::namespaceLinkedMap->find(name.left(i));
if (nd==0)
{
ClassDef *cd = getClass(name.left(i));
@@ -1496,7 +1499,7 @@ static void buildNamespaceList(const Entry *root)
//printf("Found namespace %s in %s at line %d\n",root->name.data(),
// root->fileName.data(), root->startLine);
NamespaceDefMutable *nd;
- if ((nd=toNamespaceDefMutable(Doxygen::namespaceSDict->find(fullName)))) // existing namespace
+ if ((nd=toNamespaceDefMutable(Doxygen::namespaceLinkedMap->find(fullName)))) // existing namespace
{
nd->setDocumentation(root->doc,root->docFile,root->docLine);
nd->setName(fullName); // change name to match docs
@@ -1533,9 +1536,13 @@ static void buildNamespaceList(const Entry *root)
tagFileName = tagInfo->fileName;
}
//printf("++ new namespace %s lang=%s tagName=%s\n",fullName.data(),langToString(root->lang).data(),tagName.data());
- nd=createNamespaceDef(tagInfo?tagName:root->fileName,root->startLine,
+ // add namespace to the list
+ nd = toNamespaceDefMutable(
+ Doxygen::namespaceLinkedMap->add(fullName,
+ std::unique_ptr<NamespaceDef>(
+ createNamespaceDef(tagInfo?tagName:root->fileName,root->startLine,
root->startColumn,fullName,tagName,tagFileName,
- root->type,root->spec&Entry::Published);
+ root->type,root->spec&Entry::Published))));
nd->setDocumentation(root->doc,root->docFile,root->docLine); // copy docs to definition
nd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
nd->addSectionsToDefinition(root->anchors);
@@ -1560,8 +1567,6 @@ static void buildNamespaceList(const Entry *root)
nd->insertUsedFile(fd);
nd->setBodySegment(root->startLine,root->bodyLine,root->endBodyLine);
nd->setBodyDef(fd);
- // add class to the list
- Doxygen::namespaceSDict->inSort(fullName,nd);
// also add namespace to the correct structural context
Definition *d = findScopeFromQualifiedName(Doxygen::globalScope,fullName,0,tagInfo);
@@ -1602,7 +1607,9 @@ static void buildNamespaceList(const Entry *root)
NamespaceDef *aliasNd = createNamespaceDefAlias(d,nd);
//printf("adding %s to %s\n",qPrint(aliasNd->name()),qPrint(d->name()));
dm->addInnerCompound(aliasNd);
- Doxygen::namespaceSDict->inSort(aliasNd->name(),aliasNd);
+ QCString aliasName = aliasNd->name();
+ Doxygen::namespaceLinkedMap->add(
+ aliasName,std::unique_ptr<NamespaceDef>(aliasNd));
}
}
}
@@ -1732,7 +1739,11 @@ static void findUsingDirectives(const Entry *root)
else // unknown namespace, but add it anyway.
{
//printf("++ new unknown namespace %s lang=%s\n",name.data(),langToString(root->lang).data());
- nd=createNamespaceDef(root->fileName,root->startLine,root->startColumn,name);
+ // add namespace to the list
+ nd = toNamespaceDefMutable(
+ Doxygen::namespaceLinkedMap->add(name,
+ std::unique_ptr<NamespaceDef>(
+ createNamespaceDef(root->fileName,root->startLine,root->startColumn,name))));
nd->setDocumentation(root->doc,root->docFile,root->docLine); // copy docs to definition
nd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
nd->addSectionsToDefinition(root->anchors);
@@ -1764,8 +1775,6 @@ static void findUsingDirectives(const Entry *root)
// the empty string test is needed for extract all case
nd->setBriefDescription(root->brief,root->briefFile,root->briefLine);
nd->insertUsedFile(fd);
- // add class to the list
- Doxygen::namespaceSDict->inSort(name,nd);
nd->setRefItems(root->sli);
}
}
@@ -2466,7 +2475,7 @@ static bool isVarWithConstructor(const Entry *root)
}
if (!root->parent()->name.isEmpty())
{
- ctx=Doxygen::namespaceSDict->find(root->parent()->name);
+ ctx=Doxygen::namespaceLinkedMap->find(root->parent()->name);
}
type = root->type;
// remove qualifiers
@@ -3325,7 +3334,7 @@ static void buildFunctionList(const Entry *root)
// note: the following code was replaced by inMember=TRUE to deal with a
// function rname='X::foo' of class X inside a namespace also called X...
// bug id 548175
- //nd = Doxygen::namespaceSDict->find(rname.left(memIndex));
+ //nd = Doxygen::namespaceLinkedMap->find(rname.left(memIndex));
//isMember = nd==0;
//if (nd)
//{
@@ -4813,11 +4822,9 @@ static void computeMemberReferences()
fd->computeAnchors();
}
}
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd=0;
- for (nli.toFirst();(nd=nli.current());++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
- NamespaceDefMutable *ndm = toNamespaceDefMutable(nd);
+ NamespaceDefMutable *ndm = toNamespaceDefMutable(nd.get());
if (ndm)
{
ndm->computeAnchors();
@@ -4852,11 +4859,9 @@ static void addListReferences()
}
}
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd=0;
- for (nli.toFirst();(nd=nli.current());++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
- NamespaceDefMutable *ndm = toNamespaceDefMutable(nd);
+ NamespaceDefMutable *ndm = toNamespaceDefMutable(nd.get());
if (ndm)
{
ndm->addListReferences();
@@ -5182,7 +5187,7 @@ static bool findGlobalMember(const Entry *root,
qPrint(md->name()),qPrint(namespaceName));
NamespaceDef *rnd = 0;
- if (!namespaceName.isEmpty()) rnd = Doxygen::namespaceSDict->find(namespaceName);
+ if (!namespaceName.isEmpty()) rnd = Doxygen::namespaceLinkedMap->find(namespaceName);
const ArgumentList &mdAl = const_cast<const MemberDef *>(md.get())->argumentList();
bool matching=
@@ -6095,7 +6100,7 @@ static void findMember(const Entry *root,
{
QCString joinedName = root->parent()->name+"::"+scopeName;
if (!scopeName.isEmpty() &&
- (getClass(joinedName) || Doxygen::namespaceSDict->find(joinedName)))
+ (getClass(joinedName) || Doxygen::namespaceLinkedMap->find(joinedName)))
{
scopeName = joinedName;
}
@@ -6112,7 +6117,7 @@ static void findMember(const Entry *root,
for (const auto &fnd : fd->getUsedNamespaces())
{
QCString joinedName = fnd->name()+"::"+scopeName;
- if (Doxygen::namespaceSDict->find(joinedName))
+ if (Doxygen::namespaceLinkedMap->find(joinedName))
{
scopeName=joinedName;
break;
@@ -7839,14 +7844,12 @@ static void addSourceReferences()
}
}
// add source references for namespace definitions
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd=0;
- for (nli.toFirst();(nd=nli.current());++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
FileDef *fd=nd->getBodyDef();
if (fd && nd->isLinkableInProject() && nd->getStartDefLine()!=-1)
{
- fd->addSourceRef(nd->getStartDefLine(),nd,0);
+ fd->addSourceRef(nd->getStartDefLine(),nd.get(),0);
}
}
@@ -7948,11 +7951,9 @@ static void sortMemberLists()
}
// sort namespace member lists
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd=0;
- for (nli.toFirst();(nd=nli.current());++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
- NamespaceDefMutable *ndm = toNamespaceDefMutable(nd);
+ NamespaceDefMutable *ndm = toNamespaceDefMutable(nd.get());
if (ndm)
{
ndm->sortMemberLists();
@@ -8025,11 +8026,9 @@ static void countMembers()
}
}
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd=0;
- for (nli.toFirst();(nd=nli.current());++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
- NamespaceDefMutable *ndm = toNamespaceDefMutable(nd);
+ NamespaceDefMutable *ndm = toNamespaceDefMutable(nd.get());
if (ndm)
{
ndm->countMembers();
@@ -8140,11 +8139,9 @@ static void combineUsingRelations()
// for each namespace
NamespaceDefSet visitedNamespaces;
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
- for (nli.toFirst() ; (nd=nli.current()) ; ++nli )
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
- NamespaceDefMutable *ndm = toNamespaceDefMutable(nd);
+ NamespaceDefMutable *ndm = toNamespaceDefMutable(nd.get());
if (ndm)
{
ndm->combineUsingRelations(visitedNamespaces);
@@ -8174,11 +8171,9 @@ static void addMembersToMemberGroup()
}
}
// for each namespace
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
- for ( ; (nd=nli.current()) ; ++nli )
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
- NamespaceDefMutable *ndm = toNamespaceDefMutable(nd);
+ NamespaceDefMutable *ndm = toNamespaceDefMutable(nd.get());
if (ndm)
{
ndm->addMembersToMemberGroup();
@@ -8215,11 +8210,9 @@ static void distributeMemberGroupDocumentation()
}
}
// for each namespace
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
- for ( ; (nd=nli.current()) ; ++nli )
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
- NamespaceDefMutable *ndm = toNamespaceDefMutable(nd);
+ NamespaceDefMutable *ndm = toNamespaceDefMutable(nd.get());
if (ndm)
{
ndm->distributeMemberGroupDocumentation();
@@ -8256,11 +8249,9 @@ static void findSectionsInDocumentation()
}
}
// for each namespace
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
- for ( ; (nd=nli.current()) ; ++nli )
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
- NamespaceDefMutable *ndm = toNamespaceDefMutable(nd);
+ NamespaceDefMutable *ndm = toNamespaceDefMutable(nd.get());
if (ndm)
{
ndm->findSectionsInDocumentation();
@@ -8976,15 +8967,12 @@ static void generateNamespaceDocs()
//writeNamespaceIndex(*g_outputList);
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
// for each namespace...
- for (;(nd=nli.current());++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
-
if (nd->isLinkableInProject())
{
- NamespaceDefMutable *ndm = toNamespaceDefMutable(nd);
+ NamespaceDefMutable *ndm = toNamespaceDefMutable(nd.get());
if (ndm)
{
msg("Generating docs for namespace %s\n",nd->name().data());
@@ -10123,8 +10111,7 @@ void initDoxygen()
Doxygen::functionNameLinkedMap = new MemberNameLinkedMap;
Doxygen::groupSDict = new GroupSDict(17);
Doxygen::groupSDict->setAutoDelete(TRUE);
- Doxygen::namespaceSDict = new NamespaceSDict(20);
- Doxygen::namespaceSDict->setAutoDelete(TRUE);
+ Doxygen::namespaceLinkedMap = new NamespaceLinkedMap;
Doxygen::classLinkedMap = new ClassLinkedMap;
Doxygen::hiddenClassLinkedMap = new ClassLinkedMap;
Doxygen::directories = new DirSDict(17);
@@ -10187,7 +10174,7 @@ void cleanUpDoxygen()
delete Doxygen::memberNameLinkedMap;
delete Doxygen::functionNameLinkedMap;
delete Doxygen::groupSDict;
- delete Doxygen::namespaceSDict;
+ delete Doxygen::namespaceLinkedMap;
delete Doxygen::directories;
DotManager::deleteInstance();
@@ -10739,11 +10726,9 @@ static void writeTagFile()
}
}
// for each namespace
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
- for ( ; (nd=nli.current()) ; ++nli )
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
- NamespaceDefMutable *ndm = toNamespaceDefMutable(nd);
+ NamespaceDefMutable *ndm = toNamespaceDefMutable(nd.get());
if (ndm && nd->isLinkableInProject())
{
ndm->writeTagFile(tagFile);
diff --git a/src/doxygen.h b/src/doxygen.h
index 76b8ef9..fb984f6 100644
--- a/src/doxygen.h
+++ b/src/doxygen.h
@@ -53,7 +53,7 @@ class ClassLinkedMap;
class GenericsSDict;
class MemberNameLinkedMap;
class FileNameLinkedMap;
-class NamespaceSDict;
+class NamespaceLinkedMap;
class NamespaceDef;
class DirSDict;
class DirRelation;
@@ -113,7 +113,7 @@ class Doxygen
static MemberNameLinkedMap *functionNameLinkedMap;
static StringUnorderedMap namespaceAliasMap;
static GroupSDict *groupSDict;
- static NamespaceSDict *namespaceSDict;
+ static NamespaceLinkedMap *namespaceLinkedMap;
static StringDict tagDestinationDict;
static StringDict aliasDict;
static QIntDict<MemberGroupInfo> memGrpInfoDict;
diff --git a/src/fortrancode.l b/src/fortrancode.l
index c4b865b..0ddddd1 100644
--- a/src/fortrancode.l
+++ b/src/fortrancode.l
@@ -1067,7 +1067,7 @@ static bool getFortranNamespaceDefs(const QCString &mname,
if (mname.isEmpty()) return FALSE; /* empty name => nothing to link */
// search for module
- if ((cd=Doxygen::namespaceSDict->find(mname))) return TRUE;
+ if ((cd=Doxygen::namespaceLinkedMap->find(mname))) return TRUE;
return FALSE;
}
diff --git a/src/index.cpp b/src/index.cpp
index 2e5d9f8..e68f7eb 100644
--- a/src/index.cpp
+++ b/src/index.cpp
@@ -1506,9 +1506,7 @@ static void writeFileIndex(OutputList &ol)
static int countNamespaces()
{
int count=0;
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
- for (;(nd=nli.current());++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
if (nd->isLinkableInProject()) count++;
}
@@ -1712,14 +1710,12 @@ static void writeNamespaceTree(const NamespaceLinkedRefMap &nsLinkedMap,FTVHelp
}
}
-static void writeNamespaceTree(const NamespaceSDict &nsDict,FTVHelp *ftv,
+static void writeNamespaceTree(const NamespaceLinkedMap &nsLinkedMap,FTVHelp *ftv,
bool rootOnly,bool addToIndex)
{
- NamespaceSDict::Iterator nli(nsDict);
- const NamespaceDef *nd;
- for (nli.toFirst();(nd=nli.current());++nli)
+ for (const auto &nd : nsLinkedMap)
{
- writeNamespaceTreeElement(nd,ftv,rootOnly,addToIndex);
+ writeNamespaceTreeElement(nd.get(),ftv,rootOnly,addToIndex);
}
}
@@ -1807,14 +1803,12 @@ static void writeClassTreeInsideNamespace(const NamespaceLinkedRefMap &nsLinkedM
}
}
-static void writeClassTreeInsideNamespace(const NamespaceSDict &nsDict,FTVHelp *ftv,
+static void writeClassTreeInsideNamespace(const NamespaceLinkedMap &nsLinkedMap,FTVHelp *ftv,
bool rootOnly,bool addToIndex,ClassDef::CompoundType ct)
{
- NamespaceSDict::Iterator nli(nsDict);
- const NamespaceDef *nd;
- for (nli.toFirst();(nd=nli.current());++nli)
+ for (const auto &nd : nsLinkedMap)
{
- writeClassTreeInsideNamespaceElement(nd,ftv,rootOnly,addToIndex,ct);
+ writeClassTreeInsideNamespaceElement(nd.get(),ftv,rootOnly,addToIndex,ct);
}
}
@@ -1845,9 +1839,7 @@ static void writeNamespaceIndex(OutputList &ol)
ol.pushGeneratorState();
ol.disable(OutputGenerator::Html);
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
- for (nli.toFirst();(nd=nli.current());++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
if (nd->isLinkableInProject())
{
@@ -1875,7 +1867,7 @@ static void writeNamespaceIndex(OutputList &ol)
//ol.docify(" (");
ol.generateDoc(
nd->briefFile(),nd->briefLine(),
- nd,0,
+ nd.get(),0,
nd->briefDescription(TRUE),
FALSE, // index words
FALSE, // isExample
@@ -1907,7 +1899,7 @@ static void writeNamespaceIndex(OutputList &ol)
Doxygen::indexList->incContentsDepth();
}
FTVHelp* ftv = new FTVHelp(FALSE);
- writeNamespaceTree(*Doxygen::namespaceSDict,ftv,TRUE,addToIndex);
+ writeNamespaceTree(*Doxygen::namespaceLinkedMap,ftv,TRUE,addToIndex);
QGString outStr;
FTextStream t(&outStr);
ftv->generateTreeViewInline(t);
@@ -2476,7 +2468,7 @@ static void writeAnnotatedIndexGeneric(OutputList &ol,const AnnotatedIndexContex
Doxygen::indexList->incContentsDepth();
}
FTVHelp ftv(false);
- writeClassTreeInsideNamespace(*Doxygen::namespaceSDict,&ftv,TRUE,addToIndex,ctx.compoundType);
+ writeClassTreeInsideNamespace(*Doxygen::namespaceLinkedMap,&ftv,TRUE,addToIndex,ctx.compoundType);
writeClassTree(*Doxygen::classLinkedMap,&ftv,addToIndex,TRUE,ctx.compoundType);
QGString outStr;
FTextStream t(&outStr);
diff --git a/src/latexgen.cpp b/src/latexgen.cpp
index 156be8e..bfde4d1 100644
--- a/src/latexgen.cpp
+++ b/src/latexgen.cpp
@@ -1000,14 +1000,13 @@ void LatexGenerator::startIndexSection(IndexSections is)
{
GroupSDict::Iterator gli(*Doxygen::groupSDict);
GroupDef *gd;
- bool found=FALSE;
- for (gli.toFirst();(gd=gli.current()) && !found;++gli)
+ for (gli.toFirst();(gd=gli.current());++gli)
{
if (!gd->isReference())
{
if (compactLatex) t << "\\doxysection"; else t << "\\chapter";
t << "{"; //Module Documentation}\n";
- found=TRUE;
+ break;
}
}
}
@@ -1016,30 +1015,26 @@ void LatexGenerator::startIndexSection(IndexSections is)
{
SDict<DirDef>::Iterator dli(*Doxygen::directories);
DirDef *dd;
- bool found=FALSE;
- for (dli.toFirst();(dd=dli.current()) && !found;++dli)
+ for (dli.toFirst();(dd=dli.current());++dli)
{
if (dd->isLinkableInProject())
{
if (compactLatex) t << "\\doxysection"; else t << "\\chapter";
t << "{"; //Module Documentation}\n";
- found=TRUE;
+ break;
}
}
}
break;
case isNamespaceDocumentation:
{
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
- bool found=FALSE;
- for (nli.toFirst();(nd=nli.current()) && !found;++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
if (nd->isLinkableInProject() && !nd->isAlias())
{
if (compactLatex) t << "\\doxysection"; else t << "\\chapter";
t << "{"; // Namespace Documentation}\n":
- found=TRUE;
+ break;
}
}
}
@@ -1197,26 +1192,18 @@ void LatexGenerator::endIndexSection(IndexSections is)
break;
case isNamespaceDocumentation:
{
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
bool found=FALSE;
- for (nli.toFirst();(nd=nli.current()) && !found;++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
if (nd->isLinkableInProject() && !nd->isAlias())
{
- t << "}\n\\input{" << nd->getOutputFileBase() << "}\n";
- found=TRUE;
- }
- }
- while ((nd=nli.current()))
- {
- if (nd->isLinkableInProject() && !nd->isAlias())
- {
- //if (compactLatex) t << "\\input"; else t << "\\include";
- t << "\\input";
- t << "{" << nd->getOutputFileBase() << "}\n";
+ if (!found)
+ {
+ t << "}\n";
+ found=true;
+ }
+ t << "\\input{" << nd->getOutputFileBase() << "}\n";
}
- ++nli;
}
}
break;
diff --git a/src/namespacedef.h b/src/namespacedef.h
index c9f1280..e9bf86f 100644
--- a/src/namespacedef.h
+++ b/src/namespacedef.h
@@ -19,8 +19,6 @@
#include <set>
#include <qstrlist.h>
-#include <qdict.h>
-#include "sortdict.h"
#include "definition.h"
#include "filedef.h"
#include "linkedmap.h"
@@ -40,6 +38,10 @@ class NamespaceDefMutable;
using NamespaceDefSet = std::set<const NamespaceDef*>;
+class NamespaceLinkedMap : public LinkedMap<NamespaceDef>
+{
+};
+
class NamespaceLinkedRefMap : public LinkedRefMap<const NamespaceDef>
{
public:
@@ -48,7 +50,6 @@ class NamespaceLinkedRefMap : public LinkedRefMap<const NamespaceDef>
bool declVisible() const;
};
-
/** An abstract interface of a namespace symbol. */
class NamespaceDef : public Definition
{
@@ -148,50 +149,4 @@ NamespaceDefMutable *toNamespaceDefMutable(const Definition *d);
//------------------------------------------------------------------------
-#if 0
-
-/** A list of NamespaceDef objects. */
-class NamespaceList : public QList<NamespaceDef>
-{
- public:
- ~NamespaceList() {}
- int compareValues(const NamespaceDef *nd1,const NamespaceDef *nd2) const
- {
- return qstricmp(nd1->name(), nd2->name());
- }
-};
-
-/** An iterator for NamespaceDef objects in a NamespaceList. */
-class NamespaceListIterator : public QListIterator<NamespaceDef>
-{
- public:
- NamespaceListIterator(const NamespaceList &l) :
- QListIterator<NamespaceDef>(l) {}
-};
-
-
-/** An unsorted dictionary of NamespaceDef objects. */
-class NamespaceDict : public QDict<NamespaceDef>
-{
- public:
- NamespaceDict(uint size) : QDict<NamespaceDef>(size) {}
- ~NamespaceDict() {}
-};
-#endif
-
-/** A sorted dictionary of NamespaceDef objects. */
-class NamespaceSDict : public SDict<NamespaceDef>
-{
- public:
- NamespaceSDict(uint size=17) : SDict<NamespaceDef>(size) {}
- ~NamespaceSDict() {}
- private:
- int compareValues(const NamespaceDef *item1,const NamespaceDef *item2) const
- {
- return qstricmp(item1->name(),item2->name());
- }
-};
-
-
-
#endif
diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp
index 918f39e..d84d5e4 100644
--- a/src/perlmodgen.cpp
+++ b/src/perlmodgen.cpp
@@ -2203,10 +2203,8 @@ bool PerlModGenerator::generatePerlModOutput()
m_output.closeList();
m_output.openList("namespaces");
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- const NamespaceDef *nd;
- for (nli.toFirst();(nd=nli.current());++nli)
- generatePerlModForNamespace(nd);
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
+ generatePerlModForNamespace(nd.get());
m_output.closeList();
m_output.openList("files");
diff --git a/src/rtfgen.cpp b/src/rtfgen.cpp
index b96e4b5..a8aa898 100644
--- a/src/rtfgen.cpp
+++ b/src/rtfgen.cpp
@@ -473,13 +473,12 @@ void RTFGenerator::startIndexSection(IndexSections is)
//Module Documentation
GroupSDict::Iterator gli(*Doxygen::groupSDict);
GroupDef *gd;
- bool found=FALSE;
- for (gli.toFirst();(gd=gli.current()) && !found;++gli)
+ for (gli.toFirst();(gd=gli.current());++gli)
{
if (!gd->isReference())
{
beginRTFChapter();
- found=TRUE;
+ break;
}
}
}
@@ -489,13 +488,12 @@ void RTFGenerator::startIndexSection(IndexSections is)
//Directory Documentation
SDict<DirDef>::Iterator dli(*Doxygen::directories);
DirDef *dd;
- bool found=FALSE;
- for (dli.toFirst();(dd=dli.current()) && !found;++dli)
+ for (dli.toFirst();(dd=dli.current());++dli)
{
if (dd->isLinkableInProject())
{
beginRTFChapter();
- found=TRUE;
+ break;
}
}
}
@@ -503,15 +501,12 @@ void RTFGenerator::startIndexSection(IndexSections is)
case isNamespaceDocumentation:
{
// Namespace Documentation
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
- bool found=FALSE;
- for (nli.toFirst();(nd=nli.current()) && !found;++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
if (nd->isLinkableInProject())
{
beginRTFChapter();
- found=TRUE;
+ break;
}
}
}
@@ -551,6 +546,10 @@ void RTFGenerator::startIndexSection(IndexSections is)
}
}
}
+ if (!isFirst)
+ {
+ break;
+ }
}
}
break;
@@ -776,31 +775,21 @@ void RTFGenerator::endIndexSection(IndexSections is)
break;
case isNamespaceDocumentation:
{
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
- bool found=FALSE;
- for (nli.toFirst();(nd=nli.current()) && !found;++nli)
- {
- if (nd->isLinkableInProject() && !nd->isAlias())
- {
- t << "\\par " << rtf_Style_Reset << endl;
- t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
- t << nd->getOutputFileBase();
- t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
- found=TRUE;
- }
- }
- while ((nd=nli.current()))
+ bool first=true;
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
if (nd->isLinkableInProject() && !nd->isAlias())
{
t << "\\par " << rtf_Style_Reset << endl;
- beginRTFSection();
+ if (!first)
+ {
+ beginRTFSection();
+ }
+ first=false;
t << "{\\field\\fldedit{\\*\\fldinst INCLUDETEXT \"";
t << nd->getOutputFileBase();
t << ".rtf\" \\\\*MERGEFORMAT}{\\fldrslt includedstuff}}\n";
}
- ++nli;
}
}
break;
diff --git a/src/searchindex.cpp b/src/searchindex.cpp
index 209cdea..42601b9 100644
--- a/src/searchindex.cpp
+++ b/src/searchindex.cpp
@@ -771,15 +771,13 @@ void createJavaScriptSearchIndex()
}
// index namespaces
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- NamespaceDef *nd;
- for (;(nd=nli.current());++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
uint letter = getUtf8CodeToLower(nd->name(),0);
if (nd->isLinkable() && isId(letter))
{
- g_searchIndexInfo[SEARCH_INDEX_ALL].symbolList.append(letter,nd);
- g_searchIndexInfo[SEARCH_INDEX_NAMESPACES].symbolList.append(letter,nd);
+ g_searchIndexInfo[SEARCH_INDEX_ALL].symbolList.append(letter,nd.get());
+ g_searchIndexInfo[SEARCH_INDEX_NAMESPACES].symbolList.append(letter,nd.get());
}
}
diff --git a/src/sqlite3gen.cpp b/src/sqlite3gen.cpp
index e272ed0..97c7337 100644
--- a/src/sqlite3gen.cpp
+++ b/src/sqlite3gen.cpp
@@ -2547,12 +2547,10 @@ void generateSqlite3()
}
// + namespaces
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- const NamespaceDef *nd;
- for (nli.toFirst();(nd=nli.current());++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
msg("Generating Sqlite3 output for namespace %s\n",nd->name().data());
- generateSqlite3ForNamespace(nd);
+ generateSqlite3ForNamespace(nd.get());
}
// + files
diff --git a/src/util.cpp b/src/util.cpp
index 0ae2c86..c22d267 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -231,7 +231,7 @@ QCString stripAnonymousNamespaceScope(const QCString &s)
while ((i=getScopeFragment(s,p,&l))!=-1)
{
//printf("Scope fragment %s\n",s.mid(i,l).data());
- if (Doxygen::namespaceSDict->find(s.left(i+l))!=0)
+ if (Doxygen::namespaceLinkedMap->find(s.left(i+l))!=0)
{
if (s.at(i)!='@')
{
@@ -501,11 +501,11 @@ NamespaceDef *getResolvedNamespace(const char *name)
{
warn_uncond("possible recursive namespace alias detected for %s!\n",name);
}
- return Doxygen::namespaceSDict->find(it->second.data());
+ return Doxygen::namespaceLinkedMap->find(it->second.data());
}
else
{
- return Doxygen::namespaceSDict->find(name);
+ return Doxygen::namespaceLinkedMap->find(name);
}
}
@@ -2614,7 +2614,7 @@ bool getDefs(const QCString &scName,
}
//printf("Trying namespace %s\n",namespaceName.data());
if (!namespaceName.isEmpty() &&
- (fnd=Doxygen::namespaceSDict->find(namespaceName)) &&
+ (fnd=Doxygen::namespaceLinkedMap->find(namespaceName)) &&
fnd->isLinkable()
)
{
@@ -2861,7 +2861,7 @@ static bool getScopeDefs(const char *docScope,const char *scope,
{
return TRUE; // class link written => quit
}
- else if ((nd=Doxygen::namespaceSDict->find(fullName)) && nd->isLinkable())
+ else if ((nd=Doxygen::namespaceLinkedMap->find(fullName)) && nd->isLinkable())
{
return TRUE; // namespace link written => quit
}
@@ -3249,7 +3249,7 @@ bool resolveLink(/* in */ const char *scName,
// resAnchor=cd->anchor();
// return TRUE;
// }
- else if ((nd=Doxygen::namespaceSDict->find(linkRef)))
+ else if ((nd=Doxygen::namespaceLinkedMap->find(linkRef)))
{
*resContext=nd;
return TRUE;
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index 7b52d67..13f76cb 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -1953,12 +1953,10 @@ void generateXML()
{
generateXMLForClass(cd.get(),t);
}
- NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
- const NamespaceDef *nd;
- for (nli.toFirst();(nd=nli.current());++nli)
+ for (const auto &nd : *Doxygen::namespaceLinkedMap)
{
msg("Generating XML output for namespace %s\n",nd->name().data());
- generateXMLForNamespace(nd,t);
+ generateXMLForNamespace(nd.get(),t);
}
for (const auto &fn : *Doxygen::inputNameLinkedMap)
{