summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cpptoolstestcase.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2021-05-07 16:10:07 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2021-08-13 12:35:49 +0000
commit33108795d6b2dd1e91942efb3c1c27ad23342295 (patch)
tree084d21ac56db3c55c84f242acc8400f2e68cd81c /src/plugins/cpptools/cpptoolstestcase.cpp
parent3143ba79e3d954e006f261cc0a535724a4fdc08a (diff)
downloadqt-creator-33108795d6b2dd1e91942efb3c1c27ad23342295.tar.gz
CppTools: Turn some classes into pure value types
ProjectInfo, ProjectPart and ProjectUpdateInfo used to carry pointers to Project and/or Toolchain, even though they were used in contexts where these pointers were either unsafe to access or not guaranteed to be valid anymore, which made their use difficult and error-prone. We turn these classes into pure value types by copying in all relevant information before the first async operation takes place. Fixes: QTCREATORBUG-25678 Change-Id: I1914b0dbda6c7dfba6c95e5e92f2d69977755590 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cpptoolstestcase.cpp')
-rw-r--r--src/plugins/cpptools/cpptoolstestcase.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/plugins/cpptools/cpptoolstestcase.cpp b/src/plugins/cpptools/cpptoolstestcase.cpp
index 5efe6f8aff..9f02461958 100644
--- a/src/plugins/cpptools/cpptoolstestcase.cpp
+++ b/src/plugins/cpptools/cpptoolstestcase.cpp
@@ -237,7 +237,7 @@ bool TestCase::waitUntilProjectIsFullyOpened(Project *project, int timeOutInMs)
[project]() {
return SessionManager::startupBuildSystem()
&& !SessionManager::startupBuildSystem()->isParsing()
- && CppModelManager::instance()->projectInfo(project).isValid();
+ && CppModelManager::instance()->projectInfo(project);
},
timeOutInMs);
}
@@ -278,14 +278,14 @@ ProjectOpenerAndCloser::~ProjectOpenerAndCloser()
QCoreApplication::processEvents();
}
-ProjectInfo ProjectOpenerAndCloser::open(const QString &projectFile, bool configureAsExampleProject,
- Kit *kit)
+ProjectInfo::Ptr ProjectOpenerAndCloser::open(const QString &projectFile,
+ bool configureAsExampleProject, Kit *kit)
{
ProjectExplorerPlugin::OpenProjectResult result =
ProjectExplorerPlugin::openProject(FilePath::fromString(projectFile));
if (!result) {
qWarning() << result.errorMessage() << result.alreadyOpen();
- return ProjectInfo();
+ return {};
}
Project *project = result.project();
@@ -297,7 +297,7 @@ ProjectInfo ProjectOpenerAndCloser::open(const QString &projectFile, bool config
return CppModelManager::instance()->projectInfo(project);
}
- return ProjectInfo();
+ return {};
}
TemporaryDir::TemporaryDir()