From 2cf033d43a364c165f5aa91818ecf2e150e5eb78 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Fri, 24 Jun 2016 14:41:17 +0200 Subject: [PATCH] data: Speed up include parsing by reusing current path in PreprocessorCallbacks --- .../data/parser/cxx/PreprocessorCallbacks.cpp | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/lib_parser/data/parser/cxx/PreprocessorCallbacks.cpp b/src/lib_parser/data/parser/cxx/PreprocessorCallbacks.cpp index 101fb772..0f608d56 100644 --- a/src/lib_parser/data/parser/cxx/PreprocessorCallbacks.cpp +++ b/src/lib_parser/data/parser/cxx/PreprocessorCallbacks.cpp @@ -50,21 +50,14 @@ void PreprocessorCallbacks::InclusionDirective( clang::CharSourceRange fileNameRange, const clang::FileEntry* fileEntry, llvm::StringRef searchPath, llvm::StringRef relativePath, const clang::Module* imported ){ - const clang::FileEntry* baseFileEntry = m_sourceManager.getFileEntryForID(m_sourceManager.getFileID(hashLocation)); - if (fileEntry && baseFileEntry) + if (!m_currentPath.empty()) { - FilePath baseFilePath = FilePath(baseFileEntry->getName()).canonical(); - if (!m_fileRegister->hasFilePath(baseFilePath) || m_fileRegister->fileIsParsed(baseFilePath)) - { - return; - } - FilePath includedFilePath = FilePath(fileEntry->getName()).canonical(); if (m_fileRegister->hasFilePath(includedFilePath)) { m_client->onFileIncludeParsed( getParseLocation(fileNameRange.getAsRange()), - m_fileRegister->getFileInfo(baseFilePath), + m_fileRegister->getFileInfo(m_currentPath), m_fileRegister->getFileInfo(includedFilePath) ); }