summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppmodelmanager.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2021-08-20 11:21:06 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2021-08-27 10:53:54 +0000
commita952500e902eb0a0fe5b5dbcdafb6cb66fb88141 (patch)
tree744dfbbf969359a3cb147b6bbc8ee47fe361a7ab /src/plugins/cpptools/cppmodelmanager.cpp
parent5d8551559af2300a67815582198b4ce580a7bba2 (diff)
downloadqt-creator-a952500e902eb0a0fe5b5dbcdafb6cb66fb88141.tar.gz
CppTools: Use only const pointers for ProjectInfo and ProjectPart
All members were already const, but this makes it clear at all points of use that these data structures are immutable. Change-Id: Iea615c090bde462c445d15223caccc561b0c713d Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager.cpp')
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp50
1 files changed, 25 insertions, 25 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index d4e347b861..8f67110937 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -150,7 +150,7 @@ static CppModelManager *m_instance;
class ProjectData
{
public:
- ProjectInfo::Ptr projectInfo;
+ ProjectInfo::ConstPtr projectInfo;
QFutureWatcher<void> *indexer = nullptr;
bool fullyIndexed = false;
};
@@ -168,8 +168,9 @@ public:
// Project integration
QReadWriteLock m_projectLock;
QHash<ProjectExplorer::Project *, ProjectData> m_projectData;
- QMap<Utils::FilePath, QList<ProjectPart::Ptr> > m_fileToProjectParts;
- QMap<QString, ProjectPart::Ptr> m_projectPartIdToProjectProjectPart;
+ QMap<Utils::FilePath, QList<ProjectPart::ConstPtr> > m_fileToProjectParts;
+ QMap<QString, ProjectPart::ConstPtr> m_projectPartIdToProjectProjectPart;
+
// The members below are cached/(re)calculated from the projects and/or their project parts
bool m_dirty;
QStringList m_projectFiles;
@@ -190,7 +191,7 @@ public:
bool m_indexerEnabled;
QMutex m_fallbackProjectPartMutex;
- ProjectPart::Ptr m_fallbackProjectPart;
+ ProjectPart::ConstPtr m_fallbackProjectPart;
CppFindReferences *m_findReferences;
@@ -325,7 +326,7 @@ static RefactoringEngineInterface *getRefactoringEngine(CppModelManagerPrivate::
}
void CppModelManager::startLocalRenaming(const CursorInEditor &data,
- CppTools::ProjectPart *projectPart,
+ const CppTools::ProjectPart *projectPart,
RenameCallback &&renameSymbolsCallback)
{
RefactoringEngineInterface *engine = getRefactoringEngine(d->m_refactoringEngines);
@@ -761,7 +762,7 @@ QStringList CppModelManager::internalProjectFiles() const
{
QStringList files;
for (const ProjectData &projectData : qAsConst(d->m_projectData)) {
- for (const ProjectPart::Ptr &part : projectData.projectInfo->projectParts()) {
+ for (const ProjectPart::ConstPtr &part : projectData.projectInfo->projectParts()) {
for (const ProjectFile &file : part->files)
files += file.path;
}
@@ -774,7 +775,7 @@ ProjectExplorer::HeaderPaths CppModelManager::internalHeaderPaths() const
{
ProjectExplorer::HeaderPaths headerPaths;
for (const ProjectData &projectData: qAsConst(d->m_projectData)) {
- for (const ProjectPart::Ptr &part : projectData.projectInfo->projectParts()) {
+ for (const ProjectPart::ConstPtr &part : projectData.projectInfo->projectParts()) {
for (const ProjectExplorer::HeaderPath &path : part->headerPaths) {
ProjectExplorer::HeaderPath hp(QDir::cleanPath(path.path), path.type);
if (!headerPaths.contains(hp))
@@ -802,7 +803,7 @@ ProjectExplorer::Macros CppModelManager::internalDefinedMacros() const
ProjectExplorer::Macros macros;
QSet<ProjectExplorer::Macro> alreadyIn;
for (const ProjectData &projectData : qAsConst(d->m_projectData)) {
- for (const ProjectPart::Ptr &part : projectData.projectInfo->projectParts()) {
+ for (const ProjectPart::ConstPtr &part : projectData.projectInfo->projectParts()) {
addUnique(part->toolChainMacros, macros, alreadyIn);
addUnique(part->projectMacros, macros, alreadyIn);
}
@@ -982,14 +983,14 @@ QFuture<void> CppModelManager::updateSourceFiles(const QSet<QString> &sourceFile
return d->m_internalIndexingSupport->refreshSourceFiles(filteredFiles, mode);
}
-QList<ProjectInfo::Ptr> CppModelManager::projectInfos() const
+QList<ProjectInfo::ConstPtr> CppModelManager::projectInfos() const
{
QReadLocker locker(&d->m_projectLock);
- return Utils::transform<QList<ProjectInfo::Ptr>>(d->m_projectData,
+ return Utils::transform<QList<ProjectInfo::ConstPtr>>(d->m_projectData,
[](const ProjectData &d) { return d.projectInfo; });
}
-ProjectInfo::Ptr CppModelManager::projectInfo(ProjectExplorer::Project *project) const
+ProjectInfo::ConstPtr CppModelManager::projectInfo(ProjectExplorer::Project *project) const
{
QReadLocker locker(&d->m_projectLock);
return d->m_projectData.value(project).projectInfo;
@@ -999,7 +1000,7 @@ ProjectInfo::Ptr CppModelManager::projectInfo(ProjectExplorer::Project *project)
void CppModelManager::removeProjectInfoFilesAndIncludesFromSnapshot(const ProjectInfo &projectInfo)
{
QMutexLocker snapshotLocker(&d->m_snapshotMutex);
- foreach (const ProjectPart::Ptr &projectPart, projectInfo.projectParts()) {
+ foreach (const ProjectPart::ConstPtr &projectPart, projectInfo.projectParts()) {
foreach (const ProjectFile &cxxFile, projectPart->files) {
foreach (const QString &fileName, d->m_snapshot.allIncludesForDocument(cxxFile.path))
d->m_snapshot.remove(fileName);
@@ -1074,11 +1075,11 @@ public:
}
private:
- static QSet<QString> projectPartIds(const QVector<ProjectPart::Ptr> &projectParts)
+ static QSet<QString> projectPartIds(const QVector<ProjectPart::ConstPtr> &projectParts)
{
QSet<QString> ids;
- foreach (const ProjectPart::Ptr &projectPart, projectParts)
+ foreach (const ProjectPart::ConstPtr &projectPart, projectParts)
ids.insert(projectPart->id());
return ids;
@@ -1098,7 +1099,7 @@ void CppModelManager::recalculateProjectPartMappings()
d->m_projectPartIdToProjectProjectPart.clear();
d->m_fileToProjectParts.clear();
for (const ProjectData &projectData : qAsConst(d->m_projectData)) {
- for (const ProjectPart::Ptr &projectPart : projectData.projectInfo->projectParts()) {
+ for (const ProjectPart::ConstPtr &projectPart : projectData.projectInfo->projectParts()) {
d->m_projectPartIdToProjectProjectPart[projectPart->id()] = projectPart;
for (const ProjectFile &cxxFile : projectPart->files)
d->m_fileToProjectParts[Utils::FilePath::fromString(cxxFile.path)].append(
@@ -1157,7 +1158,7 @@ void CppModelManager::updateCppEditorDocuments(bool projectsUpdated) const
}
}
-QFuture<void> CppModelManager::updateProjectInfo(const ProjectInfo::Ptr &newProjectInfo,
+QFuture<void> CppModelManager::updateProjectInfo(const ProjectInfo::ConstPtr &newProjectInfo,
const QSet<QString> &additionalFiles)
{
if (!newProjectInfo)
@@ -1181,7 +1182,6 @@ QFuture<void> CppModelManager::updateProjectInfo(const ProjectInfo::Ptr &newProj
const auto it = d->m_projectData.find(project);
if (it != d->m_projectData.end() && it->projectInfo && it->fullyIndexed) {
ProjectInfoComparer comparer(*it->projectInfo, *newProjectInfo);
-
if (comparer.configurationOrFilesChanged()) {
d->m_dirty = true;
@@ -1268,22 +1268,22 @@ QFuture<void> CppModelManager::updateProjectInfo(const ProjectInfo::Ptr &newProj
return indexingFuture;
}
-ProjectPart::Ptr CppModelManager::projectPartForId(const QString &projectPartId) const
+ProjectPart::ConstPtr CppModelManager::projectPartForId(const QString &projectPartId) const
{
QReadLocker locker(&d->m_projectLock);
return d->m_projectPartIdToProjectProjectPart.value(projectPartId);
}
-QList<ProjectPart::Ptr> CppModelManager::projectPart(const Utils::FilePath &fileName) const
+QList<ProjectPart::ConstPtr> CppModelManager::projectPart(const Utils::FilePath &fileName) const
{
QReadLocker locker(&d->m_projectLock);
return d->m_fileToProjectParts.value(fileName);
}
-QList<ProjectPart::Ptr> CppModelManager::projectPartFromDependencies(
+QList<ProjectPart::ConstPtr> CppModelManager::projectPartFromDependencies(
const Utils::FilePath &fileName) const
{
- QSet<ProjectPart::Ptr> parts;
+ QSet<ProjectPart::ConstPtr> parts;
const Utils::FilePaths deps = snapshot().filesDependingOn(fileName);
QReadLocker locker(&d->m_projectLock);
@@ -1293,7 +1293,7 @@ QList<ProjectPart::Ptr> CppModelManager::projectPartFromDependencies(
return parts.values();
}
-ProjectPart::Ptr CppModelManager::fallbackProjectPart()
+ProjectPart::ConstPtr CppModelManager::fallbackProjectPart()
{
QMutexLocker locker(&d->m_fallbackProjectPartMutex);
return d->m_fallbackProjectPart;
@@ -1431,7 +1431,7 @@ QSet<QString> CppModelManager::dependingInternalTargets(const Utils::FilePath &f
const Utils::FilePaths dependingFiles = snapshot.filesDependingOn(
wasHeader ? file : Utils::FilePath::fromString(correspondingFile));
for (const Utils::FilePath &fn : qAsConst(dependingFiles)) {
- for (const ProjectPart::Ptr &part : projectPart(fn))
+ for (const ProjectPart::ConstPtr &part : projectPart(fn))
result.insert(part->buildSystemTarget);
}
return result;
@@ -1439,12 +1439,12 @@ QSet<QString> CppModelManager::dependingInternalTargets(const Utils::FilePath &f
QSet<QString> CppModelManager::internalTargets(const Utils::FilePath &filePath) const
{
- const QList<ProjectPart::Ptr> projectParts = projectPart(filePath);
+ const QList<ProjectPart::ConstPtr> projectParts = projectPart(filePath);
// if we have no project parts it's most likely a header with declarations only and CMake based
if (projectParts.isEmpty())
return dependingInternalTargets(filePath);
QSet<QString> targets;
- for (const ProjectPart::Ptr &part : projectParts) {
+ for (const ProjectPart::ConstPtr &part : projectParts) {
targets.insert(part->buildSystemTarget);
if (part->buildTargetType != ProjectExplorer::BuildTargetType::Executable)
targets.unite(dependingInternalTargets(filePath));