CMake: Clean out unnecessary data in server mode reader

Do not keep data around once it is used. It will not help on the next run,
especially not when the parsing fails then:-)

Change-Id: Ifa1259b74349ac172a5c9d5411c10d429085b853
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Tobias Hunger
2016-11-04 14:22:29 +01:00
parent ae46c06ac6
commit 1a2f649b70

View File

@@ -219,6 +219,7 @@ void ServerModeReader::generateProjectTree(CMakeProjectNode *root, const QList<F
knownFiles.insert((*it)->filePath()); knownFiles.insert((*it)->filePath());
QList<FileNode *> fileGroupNodes = m_cmakeInputsFileNodes; QList<FileNode *> fileGroupNodes = m_cmakeInputsFileNodes;
m_cmakeInputsFileNodes.clear(); // Clean out, they are not going to be used anymore!
foreach (const FileGroup *fg, m_fileGroups) { foreach (const FileGroup *fg, m_fileGroups) {
for (const FileName &s : fg->sources) { for (const FileName &s : fg->sources) {
const int oldCount = knownFiles.count(); const int oldCount = knownFiles.count();
@@ -251,6 +252,12 @@ QSet<Core::Id> ServerModeReader::updateCodeModel(CppTools::ProjectPartBuilder &p
languages.unite(QSet<Core::Id>::fromList(ppBuilder.createProjectPartsForFiles(transform(fg->sources, &FileName::toString)))); languages.unite(QSet<Core::Id>::fromList(ppBuilder.createProjectPartsForFiles(transform(fg->sources, &FileName::toString))));
} }
qDeleteAll(m_projects); // Not used anymore!
m_projects.clear();
m_targets.clear();
m_fileGroups.clear();
return languages; return languages;
} }