diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-03-06 18:12:44 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2013-03-06 18:12:44 +0000 |
commit | 36592b1fa381a978b1b6d4b97c66fb274915fe50 (patch) | |
tree | bb7ba4d2ee8a6acaff2300377bd02e5a7ea8c737 /lib/Serialization/ASTReader.cpp | |
parent | 8bd50b169c567e5da12b1f8e91af4ab3840202f2 (diff) |
[PCH] We don't need to instantiate HeaderFileInfoTrait in ASTReader more than once.
We can just re-use the one from HeaderFileInfoLookupTable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176565 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Serialization/ASTReader.cpp')
-rw-r--r-- | lib/Serialization/ASTReader.cpp | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp index c8c1cd9cad..53474f5b0b 100644 --- a/lib/Serialization/ASTReader.cpp +++ b/lib/Serialization/ASTReader.cpp @@ -2476,7 +2476,6 @@ bool ASTReader::ReadASTBlock(ModuleFile &F) { case HEADER_SEARCH_TABLE: { F.HeaderFileInfoTableData = Blob.data(); F.LocalNumHeaderFileInfos = Record[1]; - F.HeaderFileFrameworkStrings = Blob.data() + Record[2]; if (Record[0]) { F.HeaderFileInfoTable = HeaderFileInfoLookupTable::Create( @@ -4092,31 +4091,25 @@ Optional<bool> ASTReader::isPreprocessedEntityInFileID(unsigned Index, namespace { /// \brief Visitor used to search for information about a header file. class HeaderFileInfoVisitor { - ASTReader &Reader; const FileEntry *FE; Optional<HeaderFileInfo> HFI; public: - HeaderFileInfoVisitor(ASTReader &Reader, const FileEntry *FE) - : Reader(Reader), FE(FE) { } + explicit HeaderFileInfoVisitor(const FileEntry *FE) + : FE(FE) { } static bool visit(ModuleFile &M, void *UserData) { HeaderFileInfoVisitor *This = static_cast<HeaderFileInfoVisitor *>(UserData); - HeaderFileInfoTrait Trait(This->Reader, M, - &This->Reader.getPreprocessor().getHeaderSearchInfo(), - M.HeaderFileFrameworkStrings); - HeaderFileInfoLookupTable *Table = static_cast<HeaderFileInfoLookupTable *>(M.HeaderFileInfoTable); if (!Table) return false; // Look in the on-disk hash table for an entry for this file name. - HeaderFileInfoLookupTable::iterator Pos = Table->find(This->FE->getName(), - &Trait); + HeaderFileInfoLookupTable::iterator Pos = Table->find(This->FE->getName()); if (Pos == Table->end()) return false; @@ -4129,7 +4122,7 @@ namespace { } HeaderFileInfo ASTReader::GetHeaderFileInfo(const FileEntry *FE) { - HeaderFileInfoVisitor Visitor(*this, FE); + HeaderFileInfoVisitor Visitor(FE); ModuleMgr.visit(&HeaderFileInfoVisitor::visit, &Visitor); if (Optional<HeaderFileInfo> HFI = Visitor.getHeaderFileInfo()) { if (Listener) |