summaryrefslogtreecommitdiffstats
path: root/src/filedef.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/filedef.cpp')
-rw-r--r--src/filedef.cpp49
1 files changed, 11 insertions, 38 deletions
diff --git a/src/filedef.cpp b/src/filedef.cpp
index 6ab4e85..00255f5 100644
--- a/src/filedef.cpp
+++ b/src/filedef.cpp
@@ -79,7 +79,7 @@ class FileDefImpl : public DefinitionImpl, public FileDef
virtual PackageDef *packageDef() const { return m_package; }
virtual DirDef *getDirDef() const { return m_dir; }
virtual NamespaceSDict *getUsedNamespaces() const;
- virtual SDict<Definition> *getUsedClasses() const { return m_usingDeclList; }
+ virtual LinkedRefMap<const ClassDef> getUsedClasses() const { return m_usingDeclList; }
virtual QList<IncludeInfo> *includeFileList() const { return m_includeList; }
virtual QList<IncludeInfo> *includedByFileList() const { return m_includedByList; }
virtual void getAllIncludeFilesRecursively(StringVector &incFiles) const;
@@ -113,7 +113,7 @@ class FileDefImpl : public DefinitionImpl, public FileDef
virtual void setPackageDef(PackageDef *pd) { m_package=pd; }
virtual void setDirDef(DirDef *dd) { m_dir=dd; }
virtual void addUsingDirective(const NamespaceDef *nd);
- virtual void addUsingDeclaration(Definition *def);
+ virtual void addUsingDeclaration(const ClassDef *cd);
virtual void combineUsingRelations();
virtual bool generateSourceFile() const;
virtual void sortMemberLists();
@@ -157,7 +157,7 @@ class FileDefImpl : public DefinitionImpl, public FileDef
QDict<IncludeInfo> *m_includedByDict;
QList<IncludeInfo> *m_includedByList;
NamespaceSDict *m_usingDirList;
- SDict<Definition> *m_usingDeclList;
+ LinkedRefMap<const ClassDef> m_usingDeclList;
QCString m_path;
QCString m_filePath;
QCString m_inclDepFileName;
@@ -241,7 +241,6 @@ FileDefImpl::FileDefImpl(const char *p,const char *nm,
m_srcDefDict = 0;
m_srcMemberDict = 0;
m_usingDirList = 0;
- m_usingDeclList = 0;
m_package = 0;
m_isSource = guessSection(nm)==Entry::SOURCE_SEC;
m_docname = nm;
@@ -272,7 +271,6 @@ FileDefImpl::~FileDefImpl()
delete m_srcDefDict;
delete m_srcMemberDict;
delete m_usingDirList;
- delete m_usingDeclList;
delete m_memberGroupSDict;
}
@@ -1507,16 +1505,9 @@ NamespaceSDict *FileDefImpl::getUsedNamespaces() const
return m_usingDirList;
}
-void FileDefImpl::addUsingDeclaration(Definition *d)
+void FileDefImpl::addUsingDeclaration(const ClassDef *cd)
{
- if (m_usingDeclList==0)
- {
- m_usingDeclList = new SDict<Definition>(17);
- }
- if (m_usingDeclList->find(d->qualifiedName())==0)
- {
- m_usingDeclList->append(d->qualifiedName(),d);
- }
+ m_usingDeclList.add(cd->qualifiedName(),cd);
}
void FileDefImpl::addIncludeDependency(FileDef *fd,const char *incName,bool local,bool imported)
@@ -1588,23 +1579,11 @@ void FileDefImpl::addIncludedUsingDirectives()
}
}
// add using declarations
- SDict<Definition> *udl = ii->fileDef->getUsedClasses();
- if (udl)
+ auto udl = ii->fileDef->getUsedClasses();
+ for (auto it = udl.rbegin(); it!=udl.rend(); ++it)
{
- SDict<Definition>::Iterator udi(*udl);
- Definition *d;
- for (udi.toLast();(d=udi.current());--udi)
- {
- //printf("Adding using declaration %s\n",d->name().data());
- if (m_usingDeclList==0)
- {
- m_usingDeclList = new SDict<Definition>(17);
- }
- if (m_usingDeclList->find(d->qualifiedName())==0)
- {
- m_usingDeclList->prepend(d->qualifiedName(),d);
- }
- }
+ const auto *cd = *it;
+ m_usingDeclList.prepend(cd->qualifiedName(),cd);
}
}
}
@@ -1955,15 +1934,9 @@ void FileDefImpl::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);
}
}
}