diff options
| -rw-r--r-- | lld/COFF/PDB.cpp | 3 | ||||
| -rw-r--r-- | llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h | 6 | ||||
| -rw-r--r-- | llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp | 22 |
3 files changed, 15 insertions, 16 deletions
diff --git a/lld/COFF/PDB.cpp b/lld/COFF/PDB.cpp index 2dbc3797c85..a1b0291a512 100644 --- a/lld/COFF/PDB.cpp +++ b/lld/COFF/PDB.cpp @@ -117,9 +117,8 @@ static void mergeDebugT(SymbolTable *Symtab, pdb::PDBFileBuilder &Builder, Handler.addSearchPath(llvm::sys::path::parent_path(File->getName())); if (auto EC = Reader.readArray(Types, Reader.getLength())) fatal(EC, "Reader::readArray failed"); - codeview::LazyRandomTypeCollection TypesAndIds(Types, 100); if (auto Err = codeview::mergeTypeAndIdRecords( - IDTable, TypeTable, SourceToDest, &Handler, TypesAndIds)) + IDTable, TypeTable, SourceToDest, &Handler, Types)) fatal(Err, "codeview::mergeTypeStreams failed"); } diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h b/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h index d914cf2fd9f..3ad2b4e9c92 100644 --- a/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h +++ b/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h @@ -40,7 +40,7 @@ class TypeTableBuilder; /// appropriate error code. Error mergeTypeRecords(TypeTableBuilder &Dest, SmallVectorImpl<TypeIndex> &SourceToDest, - TypeServerHandler *Handler, TypeCollection &Types); + TypeServerHandler *Handler, const CVTypeArray &Types); /// \brief Merge one set of id records into another. This method assumes /// that all records are id records, and there are no Type records present. @@ -65,7 +65,7 @@ Error mergeTypeRecords(TypeTableBuilder &Dest, /// appropriate error code. Error mergeIdRecords(TypeTableBuilder &Dest, ArrayRef<TypeIndex> Types, SmallVectorImpl<TypeIndex> &SourceToDest, - TypeCollection &Ids); + const CVTypeArray &Ids); /// \brief Merge a unified set of type and id records, splitting them into /// separate output streams. @@ -89,7 +89,7 @@ Error mergeTypeAndIdRecords(TypeTableBuilder &DestIds, TypeTableBuilder &DestTypes, SmallVectorImpl<TypeIndex> &SourceToDest, TypeServerHandler *Handler, - TypeCollection &IdsAndTypes); + const CVTypeArray &IdsAndTypes); } // end namespace codeview } // end namespace llvm diff --git a/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp b/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp index 152634056bd..383799bca7e 100644 --- a/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp +++ b/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp @@ -81,14 +81,14 @@ public: Error visitMemberEnd(CVMemberRecord &Record) override; Error mergeTypesAndIds(TypeTableBuilder &DestIds, TypeTableBuilder &DestTypes, - TypeCollection &IdsAndTypes); + const CVTypeArray &IdsAndTypes); Error mergeIdRecords(TypeTableBuilder &Dest, ArrayRef<TypeIndex> TypeSourceToDest, - TypeCollection &Ids); - Error mergeTypeRecords(TypeTableBuilder &Dest, TypeCollection &Types); + const CVTypeArray &Ids); + Error mergeTypeRecords(TypeTableBuilder &Dest, const CVTypeArray &Types); private: - Error doit(TypeCollection &Types); + Error doit(const CVTypeArray &Types); void addMapping(TypeIndex Idx); @@ -497,7 +497,7 @@ Error TypeStreamMerger::visitUnknownType(CVType &Rec) { } Error TypeStreamMerger::mergeTypeRecords(TypeTableBuilder &Dest, - TypeCollection &Types) { + const CVTypeArray &Types) { DestTypeStream = &Dest; return doit(Types); @@ -505,7 +505,7 @@ Error TypeStreamMerger::mergeTypeRecords(TypeTableBuilder &Dest, Error TypeStreamMerger::mergeIdRecords(TypeTableBuilder &Dest, ArrayRef<TypeIndex> TypeSourceToDest, - TypeCollection &Ids) { + const CVTypeArray &Ids) { DestIdStream = &Dest; TypeLookup = TypeSourceToDest; @@ -514,14 +514,14 @@ Error TypeStreamMerger::mergeIdRecords(TypeTableBuilder &Dest, Error TypeStreamMerger::mergeTypesAndIds(TypeTableBuilder &DestIds, TypeTableBuilder &DestTypes, - TypeCollection &IdsAndTypes) { + const CVTypeArray &IdsAndTypes) { DestIdStream = &DestIds; DestTypeStream = &DestTypes; return doit(IdsAndTypes); } -Error TypeStreamMerger::doit(TypeCollection &Types) { +Error TypeStreamMerger::doit(const CVTypeArray &Types) { LastError = Error::success(); if (auto EC = codeview::visitTypeStream(Types, *this, Handler)) @@ -559,7 +559,7 @@ Error TypeStreamMerger::doit(TypeCollection &Types) { Error llvm::codeview::mergeTypeRecords(TypeTableBuilder &Dest, SmallVectorImpl<TypeIndex> &SourceToDest, TypeServerHandler *Handler, - TypeCollection &Types) { + const CVTypeArray &Types) { TypeStreamMerger M(SourceToDest, Handler); return M.mergeTypeRecords(Dest, Types); } @@ -567,7 +567,7 @@ Error llvm::codeview::mergeTypeRecords(TypeTableBuilder &Dest, Error llvm::codeview::mergeIdRecords(TypeTableBuilder &Dest, ArrayRef<TypeIndex> TypeSourceToDest, SmallVectorImpl<TypeIndex> &SourceToDest, - TypeCollection &Ids) { + const CVTypeArray &Ids) { TypeStreamMerger M(SourceToDest, nullptr); return M.mergeIdRecords(Dest, TypeSourceToDest, Ids); } @@ -575,7 +575,7 @@ Error llvm::codeview::mergeIdRecords(TypeTableBuilder &Dest, Error llvm::codeview::mergeTypeAndIdRecords( TypeTableBuilder &DestIds, TypeTableBuilder &DestTypes, SmallVectorImpl<TypeIndex> &SourceToDest, TypeServerHandler *Handler, - TypeCollection &IdsAndTypes) { + const CVTypeArray &IdsAndTypes) { TypeStreamMerger M(SourceToDest, Handler); return M.mergeTypesAndIds(DestIds, DestTypes, IdsAndTypes); |

