summaryrefslogtreecommitdiffstats
path: root/src/namespacedef.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2020-10-29 18:54:59 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2020-10-29 18:54:59 (GMT)
commitdaeba94e228802e374eea260b8ba8f6157f91dbd (patch)
tree73356b584ba30cee0b48e2818094dcfad2d2d494 /src/namespacedef.cpp
parent34792e9871354e5d750ae7990b6038740b57dbf3 (diff)
downloadDoxygen-daeba94e228802e374eea260b8ba8f6157f91dbd.zip
Doxygen-daeba94e228802e374eea260b8ba8f6157f91dbd.tar.gz
Doxygen-daeba94e228802e374eea260b8ba8f6157f91dbd.tar.bz2
Refactoring: modernize getUsedClasses() method
Diffstat (limited to 'src/namespacedef.cpp')
-rw-r--r--src/namespacedef.cpp45
1 files changed, 15 insertions, 30 deletions
diff --git a/src/namespacedef.cpp b/src/namespacedef.cpp
index 65456ac..f6d35fb 100644
--- a/src/namespacedef.cpp
+++ b/src/namespacedef.cpp
@@ -59,8 +59,8 @@ class NamespaceDefImpl : public DefinitionImpl, public NamespaceDef
virtual int numDocMembers() const;
virtual void addUsingDirective(const NamespaceDef *nd);
virtual const NamespaceSDict *getUsedNamespaces() const;
- virtual void addUsingDeclaration(const Definition *def);
- virtual const SDict<Definition> *getUsedClasses() const { return usingDeclList; }
+ virtual void addUsingDeclaration(const ClassDef *cd);
+ virtual LinkedRefMap<const ClassDef> getUsedClasses() const { return m_usingDeclList; }
virtual void combineUsingRelations();
virtual QCString displayName(bool=TRUE) const;
virtual QCString localName() const;
@@ -76,7 +76,7 @@ class NamespaceDefImpl : public DefinitionImpl, public NamespaceDef
virtual void distributeMemberGroupDocumentation();
virtual void findSectionsInDocumentation();
virtual void sortMemberLists();
- virtual Definition *findInnerCompound(const char *name) const;
+ virtual const Definition *findInnerCompound(const char *name) const;
virtual void addInnerCompound(const Definition *d);
virtual void addListReferences();
virtual void setFileName(const QCString &fn);
@@ -125,7 +125,7 @@ class NamespaceDefImpl : public DefinitionImpl, public NamespaceDef
FileList files;
NamespaceSDict *usingDirList = 0;
- SDict<Definition> *usingDeclList = 0;
+ LinkedRefMap<const ClassDef> m_usingDeclList;
SDict<Definition> *m_innerCompounds = 0;
MemberSDict *m_allMembersDict = 0;
@@ -172,8 +172,8 @@ class NamespaceDefAliasImpl : public DefinitionAliasImpl, public NamespaceDef
virtual void addUsingDirective(const NamespaceDef *nd) {}
virtual const NamespaceSDict *getUsedNamespaces() const
{ return getNSAlias()->getUsedNamespaces(); }
- virtual void addUsingDeclaration(const Definition *def) {}
- virtual const SDict<Definition> *getUsedClasses() const
+ virtual void addUsingDeclaration(const ClassDef *cd) {}
+ virtual LinkedRefMap<const ClassDef> getUsedClasses() const
{ return getNSAlias()->getUsedClasses(); }
virtual void combineUsingRelations() {}
virtual QCString displayName(bool b=TRUE) const
@@ -195,7 +195,7 @@ class NamespaceDefAliasImpl : public DefinitionAliasImpl, public NamespaceDef
{ return getNSAlias()->isLinkable(); }
virtual bool hasDetailedDescription() const
{ return getNSAlias()->hasDetailedDescription(); }
- virtual Definition *findInnerCompound(const char *name) const
+ virtual const Definition *findInnerCompound(const char *name) const
{ return getNSAlias()->findInnerCompound(name); }
virtual bool subGrouping() const
{ return getNSAlias()->subGrouping(); }
@@ -285,7 +285,6 @@ NamespaceDefImpl::NamespaceDefImpl(const char *df,int dl,int dc,
namespaceSDict = new NamespaceSDict(17);
m_innerCompounds = new SDict<Definition>(17);
usingDirList = 0;
- usingDeclList = 0;
m_allMembersDict = 0;
setReference(lref);
memberGroupSDict = new MemberGroupSDict;
@@ -320,7 +319,6 @@ NamespaceDefImpl::~NamespaceDefImpl()
delete namespaceSDict;
delete m_innerCompounds;
delete usingDirList;
- delete usingDeclList;
delete memberGroupSDict;
delete m_allMembersDict;
}
@@ -1226,16 +1224,9 @@ const NamespaceSDict *NamespaceDefImpl::getUsedNamespaces() const
return usingDirList;
}
-void NamespaceDefImpl::addUsingDeclaration(const Definition *d)
+void NamespaceDefImpl::addUsingDeclaration(const ClassDef *cd)
{
- if (usingDeclList==0)
- {
- usingDeclList = new SDict<Definition>(17);
- }
- if (usingDeclList->find(d->qualifiedName())==0)
- {
- usingDeclList->append(d->qualifiedName(),d);
- }
+ m_usingDeclList.add(cd->qualifiedName(),cd);
}
QCString NamespaceDefImpl::getOutputFileBase() const
@@ -1243,19 +1234,19 @@ QCString NamespaceDefImpl::getOutputFileBase() const
return fileName;
}
-Definition *NamespaceDefImpl::findInnerCompound(const char *n) const
+const Definition *NamespaceDefImpl::findInnerCompound(const char *n) const
{
if (n==0) return 0;
- Definition *d = m_innerCompounds->find(n);
+ const Definition *d = m_innerCompounds->find(n);
if (d==0)
{
if (usingDirList)
{
d = usingDirList->find(n);
}
- if (d==0 && usingDeclList)
+ if (d==0 && !m_usingDeclList.empty())
{
- d = usingDeclList->find(n);
+ d = m_usingDeclList.find(n);
}
}
return d;
@@ -1343,15 +1334,9 @@ void NamespaceDefImpl::combineUsingRelations()
}
}
// add used classes of namespace nd to this namespace
- if (nd->getUsedClasses())
+ for (const auto &ucd : nd->getUsedClasses())
{
- SDict<Definition>::Iterator cli(*nd->getUsedClasses());
- Definition *ucd;
- for (cli.toFirst();(ucd=cli.current());++cli)
- {
- //printf("Adding class %s to the using list of %s\n",cd->qualifiedName().data(),qualifiedName().data());
- addUsingDeclaration(ucd);
- }
+ addUsingDeclaration(ucd);
}
}
}