From 66b8dab1a97521933a7466c91c216d856d618dd7 Mon Sep 17 00:00:00 2001 From: Rui Ueyama Date: Tue, 22 Nov 2016 20:32:22 +0000 Subject: [PATCH] Remove PDBFileBuilder::build() and related functions. PDBFileBuilder supports two different ways to create files. One is PDBFileBuilder::commit. That function takes a filename and write a result to the file. The other is PDBFileBuilder::build. That returns a new PDBFile object. This patch removes the latter because no one is using it and in a real life situation we are very unlikely to need it. Even if you need it, it'd be easy to write a new PDB to a memory buffer and read it back. Removing PDBFileBuilder::build enables us to remove other classes build transitively. Differential Revision: https://reviews.llvm.org/D26987 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287697 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h | 1 - include/llvm/DebugInfo/PDB/Raw/InfoStreamBuilder.h | 2 - include/llvm/DebugInfo/PDB/Raw/PDBFileBuilder.h | 3 -- include/llvm/DebugInfo/PDB/Raw/TpiStreamBuilder.h | 2 - lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp | 21 ---------- lib/DebugInfo/PDB/Raw/InfoStreamBuilder.cpp | 16 -------- lib/DebugInfo/PDB/Raw/PDBFileBuilder.cpp | 45 ---------------------- lib/DebugInfo/PDB/Raw/TpiStreamBuilder.cpp | 21 ---------- 8 files changed, 111 deletions(-) diff --git a/include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h b/include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h index da1eab8adef..99a3ac7fb1d 100644 --- a/include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h +++ b/include/llvm/DebugInfo/PDB/Raw/DbiStreamBuilder.h @@ -60,7 +60,6 @@ public: Error finalizeMsfLayout(); - Expected> build(PDBFile &File); Error commit(const msf::MSFLayout &Layout, const msf::WritableStream &Buffer); diff --git a/include/llvm/DebugInfo/PDB/Raw/InfoStreamBuilder.h b/include/llvm/DebugInfo/PDB/Raw/InfoStreamBuilder.h index 5afbf820a0c..cb60b1eb69b 100644 --- a/include/llvm/DebugInfo/PDB/Raw/InfoStreamBuilder.h +++ b/include/llvm/DebugInfo/PDB/Raw/InfoStreamBuilder.h @@ -43,8 +43,6 @@ public: Error finalizeMsfLayout(); - Expected> build(PDBFile &File); - Error commit(const msf::MSFLayout &Layout, const msf::WritableStream &Buffer) const; diff --git a/include/llvm/DebugInfo/PDB/Raw/PDBFileBuilder.h b/include/llvm/DebugInfo/PDB/Raw/PDBFileBuilder.h index 3045ab70a2d..27fc4b53b64 100644 --- a/include/llvm/DebugInfo/PDB/Raw/PDBFileBuilder.h +++ b/include/llvm/DebugInfo/PDB/Raw/PDBFileBuilder.h @@ -45,9 +45,6 @@ public: TpiStreamBuilder &getTpiBuilder(); TpiStreamBuilder &getIpiBuilder(); - Expected> - build(std::unique_ptr PdbFileBuffer); - Error commit(StringRef Filename); private: diff --git a/include/llvm/DebugInfo/PDB/Raw/TpiStreamBuilder.h b/include/llvm/DebugInfo/PDB/Raw/TpiStreamBuilder.h index 937b188e96e..f9a642126f5 100644 --- a/include/llvm/DebugInfo/PDB/Raw/TpiStreamBuilder.h +++ b/include/llvm/DebugInfo/PDB/Raw/TpiStreamBuilder.h @@ -56,8 +56,6 @@ public: Error finalizeMsfLayout(); - Expected> build(PDBFile &File); - Error commit(const msf::MSFLayout &Layout, const msf::WritableStream &Buffer); uint32_t calculateSerializedLength() const; diff --git a/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp b/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp index 33c07ffa3b8..1d5b8d693b1 100644 --- a/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp +++ b/lib/DebugInfo/PDB/Raw/DbiStreamBuilder.cpp @@ -357,27 +357,6 @@ std::vector DbiStreamBuilder::createSectionMap( return Ret; } -Expected> -DbiStreamBuilder::build(PDBFile &File) { - if (!VerHeader.hasValue()) - return make_error(raw_error_code::unspecified, - "Missing DBI Stream Version"); - if (auto EC = finalize()) - return std::move(EC); - - auto StreamData = MappedBlockStream::createIndexedStream( - File.getMsfLayout(), File.getMsfBuffer(), StreamDBI); - auto Dbi = llvm::make_unique(File, std::move(StreamData)); - Dbi->Header = Header; - Dbi->FileInfoSubstream = ReadableStreamRef(FileInfoBuffer); - Dbi->ModInfoSubstream = ReadableStreamRef(ModInfoBuffer); - if (auto EC = Dbi->initializeModInfoArray()) - return std::move(EC); - if (auto EC = Dbi->initializeFileInfo()) - return std::move(EC); - return std::move(Dbi); -} - Error DbiStreamBuilder::commit(const msf::MSFLayout &Layout, const msf::WritableStream &Buffer) { if (auto EC = finalize()) diff --git a/lib/DebugInfo/PDB/Raw/InfoStreamBuilder.cpp b/lib/DebugInfo/PDB/Raw/InfoStreamBuilder.cpp index e909c30e95f..73fbf853b4f 100644 --- a/lib/DebugInfo/PDB/Raw/InfoStreamBuilder.cpp +++ b/lib/DebugInfo/PDB/Raw/InfoStreamBuilder.cpp @@ -47,22 +47,6 @@ Error InfoStreamBuilder::finalizeMsfLayout() { return Error::success(); } -Expected> -InfoStreamBuilder::build(PDBFile &File) { - auto StreamData = MappedBlockStream::createIndexedStream( - File.getMsfLayout(), File.getMsfBuffer(), StreamPDB); - auto Info = llvm::make_unique(std::move(StreamData)); - Info->Version = Ver; - Info->Signature = Sig; - Info->Age = Age; - Info->Guid = Guid; - auto NS = NamedStreams.build(); - if (!NS) - return NS.takeError(); - Info->NamedStreams = **NS; - return std::move(Info); -} - Error InfoStreamBuilder::commit(const msf::MSFLayout &Layout, const msf::WritableStream &Buffer) const { auto InfoS = diff --git a/lib/DebugInfo/PDB/Raw/PDBFileBuilder.cpp b/lib/DebugInfo/PDB/Raw/PDBFileBuilder.cpp index e47d11cf61a..6fec0e32a8a 100644 --- a/lib/DebugInfo/PDB/Raw/PDBFileBuilder.cpp +++ b/lib/DebugInfo/PDB/Raw/PDBFileBuilder.cpp @@ -87,51 +87,6 @@ Expected PDBFileBuilder::finalizeMsfLayout() const { return Msf->build(); } -Expected> -PDBFileBuilder::build(std::unique_ptr PdbFileBuffer) { - auto ExpectedLayout = finalizeMsfLayout(); - if (!ExpectedLayout) - return ExpectedLayout.takeError(); - - auto File = llvm::make_unique(std::move(PdbFileBuffer), Allocator); - File->ContainerLayout = *ExpectedLayout; - - if (Info) { - auto ExpectedInfo = Info->build(*File); - if (!ExpectedInfo) - return ExpectedInfo.takeError(); - File->Info = std::move(*ExpectedInfo); - } - - if (Dbi) { - auto ExpectedDbi = Dbi->build(*File); - if (!ExpectedDbi) - return ExpectedDbi.takeError(); - File->Dbi = std::move(*ExpectedDbi); - } - - if (Tpi) { - auto ExpectedTpi = Tpi->build(*File); - if (!ExpectedTpi) - return ExpectedTpi.takeError(); - File->Tpi = std::move(*ExpectedTpi); - } - - if (Ipi) { - auto ExpectedIpi = Ipi->build(*File); - if (!ExpectedIpi) - return ExpectedIpi.takeError(); - File->Ipi = std::move(*ExpectedIpi); - } - - if (File->Info && File->Dbi && File->Info->getAge() != File->Dbi->getAge()) - return llvm::make_error( - raw_error_code::corrupt_file, - "PDB Stream Age doesn't match Dbi Stream Age!"); - - return std::move(File); -} - Error PDBFileBuilder::commit(StringRef Filename) { auto ExpectedLayout = finalizeMsfLayout(); if (!ExpectedLayout) diff --git a/lib/DebugInfo/PDB/Raw/TpiStreamBuilder.cpp b/lib/DebugInfo/PDB/Raw/TpiStreamBuilder.cpp index d8bae59195c..aa3547c93c4 100644 --- a/lib/DebugInfo/PDB/Raw/TpiStreamBuilder.cpp +++ b/lib/DebugInfo/PDB/Raw/TpiStreamBuilder.cpp @@ -99,27 +99,6 @@ Error TpiStreamBuilder::finalizeMsfLayout() { return Error::success(); } -Expected> TpiStreamBuilder::build(PDBFile &File) { - if (!VerHeader.hasValue()) - return make_error(raw_error_code::unspecified, - "Missing TPI Stream Version"); - if (auto EC = finalize()) - return std::move(EC); - - auto StreamData = MappedBlockStream::createIndexedStream( - File.getMsfLayout(), File.getMsfBuffer(), Idx); - auto Tpi = llvm::make_unique(File, std::move(StreamData)); - Tpi->Header = Header; - Tpi->TypeRecords = VarStreamArray(TypeRecordStream); - if (HashValueStream) { - Tpi->HashStream = std::move(HashValueStream); - StreamReader HSR(*Tpi->HashStream); - if (auto EC = HSR.readArray(Tpi->HashValues, TypeRecords.size())) - return std::move(EC); - } - return std::move(Tpi); -} - Error TpiStreamBuilder::commit(const msf::MSFLayout &Layout, const msf::WritableStream &Buffer) { if (auto EC = finalize()) -- 2.11.0