diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-07-02 15:08:19 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2014-07-02 15:22:23 +0200 |
commit | 9297ea217284e2279f2d4471b3f8fc754dc5fe71 (patch) | |
tree | 43abf2111d155a6b1c8748323aca1618028da1ec | |
parent | 2ad4749c8aa924e2dd8b245309e7b585b9329f7f (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.cpp | 23 | ||||
-rw-r--r-- | src/lib/corelib/language/itemreader.h | 6 | ||||
-rw-r--r-- | src/lib/corelib/language/itemreaderastvisitor.cpp | 2 | ||||
-rw-r--r-- | src/lib/corelib/language/moduleloader.cpp | 3 |
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 ¶meters) 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; |