summaryrefslogtreecommitdiffstats
path: root/src/xmlgen.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2020-12-19 19:15:16 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2020-12-19 19:27:37 (GMT)
commit963caeef1c24d66a51376f77d8692f1a3c5d4a62 (patch)
treedbdd7ab0d167f886f1b2a672f15d9382f875bcd0 /src/xmlgen.cpp
parentd76b1ec4a5f009251dc6e4904454c9f40216e874 (diff)
downloadDoxygen-963caeef1c24d66a51376f77d8692f1a3c5d4a62.zip
Doxygen-963caeef1c24d66a51376f77d8692f1a3c5d4a62.tar.gz
Doxygen-963caeef1c24d66a51376f77d8692f1a3c5d4a62.tar.bz2
Refactoring: replace ClassSDict by ClassLinkedMap/ClassLinkedRefMap
Diffstat (limited to 'src/xmlgen.cpp')
-rw-r--r--src/xmlgen.cpp53
1 files changed, 16 insertions, 37 deletions
diff --git a/src/xmlgen.cpp b/src/xmlgen.cpp
index 1993c1e..68ecdf0 100644
--- a/src/xmlgen.cpp
+++ b/src/xmlgen.cpp
@@ -1124,27 +1124,22 @@ static void writeListOfAllMembers(const ClassDef *cd,FTextStream &t)
t << " </listofallmembers>" << endl;
}
-static void writeInnerClasses(const ClassSDict *cl,FTextStream &t)
+static void writeInnerClasses(const ClassLinkedRefMap &cl,FTextStream &t)
{
- if (cl)
+ for (const auto &cd : cl)
{
- ClassSDict::Iterator cli(*cl);
- const ClassDef *cd;
- for (cli.toFirst();(cd=cli.current());++cli)
+ if (!cd->isHidden() && !cd->isAnonymous())
{
- if (!cd->isHidden() && !cd->isAnonymous())
+ t << " <innerclass refid=\"" << classOutputFileBase(cd)
+ << "\" prot=\"";
+ switch(cd->protection())
{
- t << " <innerclass refid=\"" << classOutputFileBase(cd)
- << "\" prot=\"";
- switch(cd->protection())
- {
- case Public: t << "public"; break;
- case Protected: t << "protected"; break;
- case Private: t << "private"; break;
- case Package: t << "package"; break;
- }
- t << "\">" << convertToXML(cd->name()) << "</innerclass>" << endl;
+ case Public: t << "public"; break;
+ case Protected: t << "protected"; break;
+ case Private: t << "private"; break;
+ case Package: t << "package"; break;
}
+ t << "\">" << convertToXML(cd->name()) << "</innerclass>" << endl;
}
}
}
@@ -1363,7 +1358,7 @@ static void generateXMLForClass(const ClassDef *cd,FTextStream &ti)
}
}
- writeInnerClasses(cd->getClassSDict(),t);
+ writeInnerClasses(cd->getClasses(),t);
writeTemplateList(cd,t);
if (cd->getMemberGroupSDict())
@@ -1467,7 +1462,7 @@ static void generateXMLForNamespace(const NamespaceDef *nd,FTextStream &ti)
writeXMLString(t,nd->name());
t << "</compoundname>" << endl;
- writeInnerClasses(nd->getClassSDict(),t);
+ writeInnerClasses(nd->getClasses(),t);
writeInnerNamespaces(nd->getNamespaceSDict(),t);
if (nd->getMemberGroupSDict())
@@ -1598,10 +1593,7 @@ static void generateXMLForFile(FileDef *fd,FTextStream &ti)
t << " </invincdepgraph>" << endl;
}
- if (fd->getClassSDict())
- {
- writeInnerClasses(fd->getClassSDict(),t);
- }
+ writeInnerClasses(fd->getClasses(),t);
if (fd->getNamespaceSDict())
{
writeInnerNamespaces(fd->getNamespaceSDict(),t);
@@ -1965,23 +1957,10 @@ void generateXML()
t << "xml:lang=\"" << theTranslator->trISOLang() << "\"";
t << ">" << endl;
+ for (const auto &cd : *Doxygen::classLinkedMap)
{
- ClassSDict::Iterator cli(*Doxygen::classSDict);
- const ClassDef *cd;
- for (cli.toFirst();(cd=cli.current());++cli)
- {
- generateXMLForClass(cd,t);
- }
+ generateXMLForClass(cd.get(),t);
}
- //{
- // ClassSDict::Iterator cli(Doxygen::hiddenClasses);
- // ClassDef *cd;
- // for (cli.toFirst();(cd=cli.current());++cli)
- // {
- // msg("Generating XML output for class %s\n",cd->name().data());
- // generateXMLForClass(cd,t);
- // }
- //}
NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
const NamespaceDef *nd;
for (nli.toFirst();(nd=nli.current());++nli)