aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/Decompressor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Object/Decompressor.cpp')
-rw-r--r--llvm/lib/Object/Decompressor.cpp39
1 files changed, 1 insertions, 38 deletions
diff --git a/llvm/lib/Object/Decompressor.cpp b/llvm/lib/Object/Decompressor.cpp
index a6a28a0589ac..3842ec92ccfc 100644
--- a/llvm/lib/Object/Decompressor.cpp
+++ b/llvm/lib/Object/Decompressor.cpp
@@ -23,9 +23,7 @@ Expected<Decompressor> Decompressor::create(StringRef Name, StringRef Data,
return createError("zlib is not available");
Decompressor D(Data);
- Error Err = isGnuStyle(Name) ? D.consumeCompressedGnuHeader()
- : D.consumeCompressedZLibHeader(Is64Bit, IsLE);
- if (Err)
+ if (Error Err = D.consumeCompressedZLibHeader(Is64Bit, IsLE))
return std::move(Err);
return D;
}
@@ -33,21 +31,6 @@ Expected<Decompressor> Decompressor::create(StringRef Name, StringRef Data,
Decompressor::Decompressor(StringRef Data)
: SectionData(Data), DecompressedSize(0) {}
-Error Decompressor::consumeCompressedGnuHeader() {
- if (!SectionData.startswith("ZLIB"))
- return createError("corrupted compressed section header");
-
- SectionData = SectionData.substr(4);
-
- // Consume uncompressed section size (big-endian 8 bytes).
- if (SectionData.size() < 8)
- return createError("corrupted uncompressed section size");
- DecompressedSize = read64be(SectionData.data());
- SectionData = SectionData.substr(8);
-
- return Error::success();
-}
-
Error Decompressor::consumeCompressedZLibHeader(bool Is64Bit,
bool IsLittleEndian) {
using namespace ELF;
@@ -72,26 +55,6 @@ Error Decompressor::consumeCompressedZLibHeader(bool Is64Bit,
return Error::success();
}
-bool Decompressor::isGnuStyle(StringRef Name) {
- return Name.startswith(".zdebug");
-}
-
-bool Decompressor::isCompressed(const object::SectionRef &Section) {
- if (Section.isCompressed())
- return true;
-
- Expected<StringRef> SecNameOrErr = Section.getName();
- if (SecNameOrErr)
- return isGnuStyle(*SecNameOrErr);
-
- consumeError(SecNameOrErr.takeError());
- return false;
-}
-
-bool Decompressor::isCompressedELFSection(uint64_t Flags, StringRef Name) {
- return (Flags & ELF::SHF_COMPRESSED) || isGnuStyle(Name);
-}
-
Error Decompressor::decompress(MutableArrayRef<uint8_t> Buffer) {
size_t Size = Buffer.size();
return compression::zlib::uncompress(arrayRefFromStringRef(SectionData),