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 | 61a3896d9fe122dafef192a00a7672315761424f (patch) | |
| tree | 9583c6d561682adcfd79cb577fa297982d515119 /clang/lib | |
| parent | b42863e2587fafdc8eb8590319fb080f20e70b55 (diff) | |
| download | bcm5719-llvm-61a3896d9fe122dafef192a00a7672315761424f.tar.gz bcm5719-llvm-61a3896d9fe122dafef192a00a7672315761424f.zip  | |
[PCH] We don't need to instantiate HeaderFileInfoTrait in ASTReader more than once.
We can just re-use the one from HeaderFileInfoLookupTable.
llvm-svn: 176565
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 15 | ||||
| -rw-r--r-- | clang/lib/Serialization/Module.cpp | 2 | 
2 files changed, 5 insertions, 12 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index c8c1cd9cad7..53474f5b0b5 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/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) diff --git a/clang/lib/Serialization/Module.cpp b/clang/lib/Serialization/Module.cpp index 27242d54da9..2eb397176a1 100644 --- a/clang/lib/Serialization/Module.cpp +++ b/clang/lib/Serialization/Module.cpp @@ -33,7 +33,7 @@ ModuleFile::ModuleFile(ModuleKind Kind, unsigned Generation)      PreprocessedEntityOffsets(0), NumPreprocessedEntities(0),      LocalNumHeaderFileInfos(0),       HeaderFileInfoTableData(0), HeaderFileInfoTable(0), -    HeaderFileFrameworkStrings(0), LocalNumSubmodules(0), BaseSubmoduleID(0), +    LocalNumSubmodules(0), BaseSubmoduleID(0),      LocalNumSelectors(0), SelectorOffsets(0), BaseSelectorID(0),      SelectorLookupTableData(0), SelectorLookupTable(0), LocalNumDecls(0),      DeclOffsets(0), BaseDeclID(0),  | 

