forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -703,6 +703,12 @@ Project *SessionManager::projectForFile(const Utils::FilePath &fileName)
|
||||
[&fileName](const Project *p) { return p->isKnownFile(fileName); });
|
||||
}
|
||||
|
||||
Project *SessionManager::projectWithProjectFilePath(const Utils::FilePath &filePath)
|
||||
{
|
||||
return Utils::findOrDefault(SessionManager::projects(),
|
||||
[&filePath](const Project *p) { return p->projectFilePath() == filePath; });
|
||||
}
|
||||
|
||||
void SessionManager::configureEditor(IEditor *editor, const QString &fileName)
|
||||
{
|
||||
if (auto textEditor = qobject_cast<TextEditor::BaseTextEditor*>(editor)) {
|
||||
|
||||
Reference in New Issue
Block a user