[PATCH] D33200: [lib/Object] - Minor API update for llvm::Decompressor (simplify).
George Rimar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon May 15 07:44:59 PDT 2017
grimar created this revision.
I revisited Decompressor API (issue with it was triggered during https://reviews.llvm.org/D32865 review)
and found it is probably provides more then we really need.
Issue was abount net method's signature:
Error decompress(SmallString<32> &Out);
It is too strict. At first I wanted to change it to decompress(SmallVectorImpl<char> &Out),
but then found it is still not flexible because sticks to SmallVector. I think we can remove that
method at all and simplify API a bit.
https://reviews.llvm.org/D33200
Files:
include/llvm/Object/Decompressor.h
lib/DebugInfo/DWARF/DWARFContext.cpp
lib/Object/Decompressor.cpp
tools/llvm-dwp/llvm-dwp.cpp
Index: tools/llvm-dwp/llvm-dwp.cpp
===================================================================
--- tools/llvm-dwp/llvm-dwp.cpp
+++ tools/llvm-dwp/llvm-dwp.cpp
@@ -373,6 +373,7 @@
return createError(Name, Dec.takeError());
UncompressedSections.emplace_back();
+ UncompressedSections.back().resize(Dec->getDecompressedSize());
if (Error E = Dec->decompress(UncompressedSections.back()))
return createError(Name, std::move(E));
Index: lib/Object/Decompressor.cpp
===================================================================
--- lib/Object/Decompressor.cpp
+++ lib/Object/Decompressor.cpp
@@ -88,11 +88,6 @@
return (Flags & ELF::SHF_COMPRESSED) || isGnuStyle(Name);
}
-Error Decompressor::decompress(SmallString<32> &Out) {
- Out.resize(DecompressedSize);
- return decompress({Out.data(), (size_t)DecompressedSize});
-}
-
Error Decompressor::decompress(MutableArrayRef<char> Buffer) {
size_t Size = Buffer.size();
return zlib::uncompress(SectionData, Buffer.data(), Size);
Index: lib/DebugInfo/DWARF/DWARFContext.cpp
===================================================================
--- lib/DebugInfo/DWARF/DWARFContext.cpp
+++ lib/DebugInfo/DWARF/DWARFContext.cpp
@@ -979,6 +979,7 @@
return Decompressor.takeError();
SmallString<32> Out;
+ Out.resize(Decompressor->getDecompressedSize());
if (auto Err = Decompressor->decompress(Out))
return Err;
Index: include/llvm/Object/Decompressor.h
===================================================================
--- include/llvm/Object/Decompressor.h
+++ include/llvm/Object/Decompressor.h
@@ -28,10 +28,6 @@
static Expected<Decompressor> create(StringRef Name, StringRef Data,
bool IsLE, bool Is64Bit);
- /// @brief Resize the buffer and uncompress section data into it.
- /// @param Out Destination buffer.
- Error decompress(SmallString<32> &Out);
-
/// @brief Uncompress section data to raw buffer provided.
/// @param Buffer Destination buffer.
Error decompress(MutableArrayRef<char> Buffer);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D33200.99005.patch
Type: text/x-patch
Size: 2084 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170515/bc4cc20a/attachment.bin>
More information about the llvm-commits
mailing list