aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2014-07-02 15:08:19 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2014-07-02 15:22:23 +0200
commit9297ea217284e2279f2d4471b3f8fc754dc5fe71 (patch)
tree43abf2111d155a6b1c8748323aca1618028da1ec
parent2ad4749c8aa924e2dd8b245309e7b585b9329f7f (diff)
remove superfluous item cache
ItemReader::m_itemCache was only used for module items, and those are cached in the module loader. There's no reason for a second cache. Change-Id: I52f8e1ca12119dcd72f737479373022f01c88a51 Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
-rw-r--r--src/lib/corelib/language/itemreader.cpp23
-rw-r--r--src/lib/corelib/language/itemreader.h6
-rw-r--r--src/lib/corelib/language/itemreaderastvisitor.cpp2
-rw-r--r--src/lib/corelib/language/moduleloader.cpp3
4 files changed, 8 insertions, 26 deletions
diff --git a/src/lib/corelib/language/itemreader.cpp b/src/lib/corelib/language/itemreader.cpp
index 2a1d125aa..ba4859899 100644
--- a/src/lib/corelib/language/itemreader.cpp
+++ b/src/lib/corelib/language/itemreader.cpp
@@ -128,11 +128,6 @@ QStringList ItemReader::searchPaths() const
return paths;
}
-void ItemReader::clearItemCache()
-{
- m_itemCache.clear();
-}
-
void ItemReader::cacheDirectoryEntries(const QString &dirPath, const QStringList &entries)
{
m_directoryEntries.insert(dirPath, entries);
@@ -147,9 +142,9 @@ bool ItemReader::findDirectoryEntries(const QString &dirPath, QStringList *entri
return true;
}
-Item *ItemReader::readFile(const QString &filePath, bool enableItemCache)
+Item *ItemReader::readFile(const QString &filePath)
{
- Item * const item = internalReadFile(filePath, enableItemCache).rootItem;
+ Item * const item = internalReadFile(filePath).rootItem;
return item;
}
@@ -158,15 +153,8 @@ QSet<QString> ItemReader::filesRead() const
return m_filesRead;
}
-ItemReaderResult ItemReader::internalReadFile(const QString &filePath, bool enableItemCache)
+ItemReaderResult ItemReader::internalReadFile(const QString &filePath)
{
- ItemReaderResult result;
- if (enableItemCache) {
- result = m_itemCache.value(filePath);
- if (result.rootItem)
- return result;
- }
-
ASTCacheValue &cacheValue = (*m_astCache)[filePath];
if (cacheValue.isValid()) {
if (Q_UNLIKELY(cacheValue.isProcessing()))
@@ -197,16 +185,13 @@ ItemReaderResult ItemReader::internalReadFile(const QString &filePath, bool enab
cacheValue.setAst(parser.ast());
}
+ ItemReaderResult result;
ItemReaderASTVisitor itemReader(this, &result);
itemReader.setFilePath(QFileInfo(filePath).absoluteFilePath());
itemReader.setSourceCode(cacheValue.code());
cacheValue.setProcessingFlag(true);
cacheValue.ast()->accept(&itemReader);
cacheValue.setProcessingFlag(false);
-
- if (enableItemCache)
- m_itemCache.insert(filePath, result);
-
return result;
}
diff --git a/src/lib/corelib/language/itemreader.h b/src/lib/corelib/language/itemreader.h
index f22f69d48..8e7c9ea0a 100644
--- a/src/lib/corelib/language/itemreader.h
+++ b/src/lib/corelib/language/itemreader.h
@@ -79,13 +79,12 @@ public:
void popExtraSearchPaths();
QStringList searchPaths() const;
- void clearItemCache();
- Item *readFile(const QString &filePath, bool enableItemCache = false);
+ Item *readFile(const QString &filePath);
QSet<QString> filesRead() const;
private:
- ItemReaderResult internalReadFile(const QString &filePath, bool enableItemCache);
+ ItemReaderResult internalReadFile(const QString &filePath);
void cacheDirectoryEntries(const QString &dirPath, const QStringList &entries);
bool findDirectoryEntries(const QString &dirPath, QStringList *entries) const;
@@ -99,7 +98,6 @@ private:
class ASTCache;
ASTCache *m_astCache;
- QHash<QString, ItemReaderResult> m_itemCache;
QSet<QString> m_filesRead;
QHash<QString, QStringList> m_directoryEntries;
};
diff --git a/src/lib/corelib/language/itemreaderastvisitor.cpp b/src/lib/corelib/language/itemreaderastvisitor.cpp
index 82cede787..dce00cdfe 100644
--- a/src/lib/corelib/language/itemreaderastvisitor.cpp
+++ b/src/lib/corelib/language/itemreaderastvisitor.cpp
@@ -312,7 +312,7 @@ bool ItemReaderASTVisitor::visit(AST::UiObjectDefinition *ast)
const QStringList fullTypeName = toStringList(ast->qualifiedTypeNameId);
const QString baseTypeFileName = m_typeNameToFile.value(fullTypeName);
if (!baseTypeFileName.isEmpty()) {
- const ItemReaderResult baseFile = m_reader->internalReadFile(baseTypeFileName, false);
+ const ItemReaderResult baseFile = m_reader->internalReadFile(baseTypeFileName);
inheritItem(item, baseFile.rootItem);
if (baseFile.rootItem->m_file->m_idScope) {
diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp
index 99c133d0b..23b0d5980 100644
--- a/src/lib/corelib/language/moduleloader.cpp
+++ b/src/lib/corelib/language/moduleloader.cpp
@@ -107,7 +107,6 @@ ModuleLoaderResult ModuleLoader::load(const SetupProjectParameters &parameters)
if (m_logger.traceEnabled())
m_logger.qbsTrace() << "[MODLDR] load" << parameters.projectFilePath();
m_parameters = parameters;
- m_reader->clearItemCache();
m_validItemPropertyNamesPerItem.clear();
m_disabledItems.clear();
@@ -804,7 +803,7 @@ Item *ModuleLoader::loadModuleFile(ProductContext *productContext, const QString
m_logger.qbsTrace() << "[LDR] loadModuleFile " << filePath;
*cacheHit = false;
- module = m_reader->readFile(filePath, true);
+ module = m_reader->readFile(filePath);
if (!isBaseModule) {
DependsContext dependsContext;
dependsContext.product = productContext;