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:
@@ -58,9 +58,8 @@ void CppTodoItemsScanner::scannerParamsChanged()
|
||||
CppTools::CppModelManager *modelManager = CppTools::CppModelManager::instance();
|
||||
|
||||
QSet<QString> filesToBeUpdated;
|
||||
foreach (const CppTools::ProjectInfo &info, modelManager->projectInfos())
|
||||
filesToBeUpdated.unite(Utils::transform<QSet>(info.project().data()->files(ProjectExplorer::Project::SourceFiles),
|
||||
&Utils::FilePath::toString));
|
||||
foreach (const CppTools::ProjectInfo::Ptr &info, modelManager->projectInfos())
|
||||
filesToBeUpdated.unite(info->sourceFiles());
|
||||
|
||||
modelManager->updateSourceFiles(filesToBeUpdated);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user