forked from qt-creator/qt-creator
CPlusPlus: Proliferate FilePath use
The starts with CppDocument::filePath(), plus a bit of the fallout This is one patch of potentially many. It is hard to draw the line where to stop this kind of chunk, this here converts a few additional functions for which including it in the patch looked like less churn than without. Converting is mostly fromString/toString, with a few exceptions for "already seem" like caches, that use cheaper "path()" to avoid likely performance regressions (on Windows FilePath comparison is currently case-insenstive, and more expensive). There should be no difference for local operation with this patch. Change-Id: I7b35f98a0a6f0bfed4ea0f8f987faf586f7a8f2b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -1350,10 +1350,10 @@ void ModelManagerInterface::maybeQueueCppQmlTypeUpdate(const CPlusPlus::Document
|
||||
|
||||
void ModelManagerInterface::queueCppQmlTypeUpdate(const CPlusPlus::Document::Ptr &doc, bool scan)
|
||||
{
|
||||
QPair<CPlusPlus::Document::Ptr, bool> prev = m_queuedCppDocuments.value(doc->fileName());
|
||||
QPair<CPlusPlus::Document::Ptr, bool> prev = m_queuedCppDocuments.value(doc->filePath().path());
|
||||
if (prev.first && prev.second)
|
||||
prev.first->releaseSourceAndAST();
|
||||
m_queuedCppDocuments.insert(doc->fileName(), {doc, scan});
|
||||
m_queuedCppDocuments.insert(doc->filePath().path(), {doc, scan});
|
||||
m_updateCppQmlTypesTimer->start();
|
||||
}
|
||||
|
||||
@@ -1439,13 +1439,13 @@ void ModelManagerInterface::updateCppQmlTypes(
|
||||
|
||||
CPlusPlus::Document::Ptr doc = pair.first;
|
||||
const bool scan = pair.second;
|
||||
const QString fileName = doc->fileName();
|
||||
const FilePath filePath = doc->filePath();
|
||||
if (!scan) {
|
||||
hasNewInfo = newData.remove(fileName) || hasNewInfo;
|
||||
const auto savedDocs = newDeclarations.value(fileName);
|
||||
hasNewInfo = newData.remove(filePath.path()) || hasNewInfo;
|
||||
const auto savedDocs = newDeclarations.value(filePath.path());
|
||||
for (const CPlusPlus::Document::Ptr &savedDoc : savedDocs) {
|
||||
finder(savedDoc);
|
||||
hasNewInfo = rescanExports(savedDoc->fileName(), finder, newData) || hasNewInfo;
|
||||
hasNewInfo = rescanExports(savedDoc->filePath().path(), finder, newData) || hasNewInfo;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
@@ -1453,7 +1453,7 @@ void ModelManagerInterface::updateCppQmlTypes(
|
||||
for (auto it = newDeclarations.begin(), end = newDeclarations.end(); it != end;) {
|
||||
for (auto docIt = it->begin(), endDocIt = it->end(); docIt != endDocIt;) {
|
||||
const CPlusPlus::Document::Ptr &savedDoc = *docIt;
|
||||
if (savedDoc->fileName() == fileName) {
|
||||
if (savedDoc->filePath() == filePath) {
|
||||
savedDoc->releaseSourceAndAST();
|
||||
it->erase(docIt);
|
||||
break;
|
||||
@@ -1472,7 +1472,7 @@ void ModelManagerInterface::updateCppQmlTypes(
|
||||
doc->keepSourceAndAST(); // keep for later reparsing when dependent doc changes
|
||||
}
|
||||
|
||||
hasNewInfo = rescanExports(fileName, finder, newData) || hasNewInfo;
|
||||
hasNewInfo = rescanExports(filePath.path(), finder, newData) || hasNewInfo;
|
||||
doc->releaseSourceAndAST();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user