[Object] Change ObjectFile::getSectionContents to return Expected<ArrayRef<uint8_t>>
authorFangrui Song <maskray@google.com>
Tue, 14 May 2019 04:22:51 +0000 (04:22 +0000)
committerFangrui Song <maskray@google.com>
Tue, 14 May 2019 04:22:51 +0000 (04:22 +0000)
commite1cb2c0f404d9fe68f5f465a281be295ca24ec33
tree7b6e58ac12ce6b1e8deb5e2542f4a95cba445585
parentfe1aec0dbb1638b5ce84c9ad71d1c8bee4f1f8ac
[Object] Change ObjectFile::getSectionContents to return Expected<ArrayRef<uint8_t>>

Change
std::error_code getSectionContents(DataRefImpl, StringRef &) const;
to
Expected<ArrayRef<uint8_t>> getSectionContents(DataRefImpl) const;

Many object formats use ArrayRef<uint8_t> as the underlying type, which
is generally better than StringRef to represent binary data, so change
the type to decrease the number of type conversions.

Reviewed By: ruiu, sbc100

Differential Revision: https://reviews.llvm.org/D61781

llvm-svn: 360648
17 files changed:
lld/COFF/Chunks.cpp
lld/COFF/Driver.cpp
lld/COFF/InputFiles.cpp
llvm/include/llvm/Object/COFF.h
llvm/include/llvm/Object/ELFObjectFile.h
llvm/include/llvm/Object/MachO.h
llvm/include/llvm/Object/ObjectFile.h
llvm/include/llvm/Object/Wasm.h
llvm/include/llvm/Object/XCOFFObjectFile.h
llvm/lib/Object/COFFObjectFile.cpp
llvm/lib/Object/MachOObjectFile.cpp
llvm/lib/Object/WasmObjectFile.cpp
llvm/lib/Object/XCOFFObjectFile.cpp
llvm/tools/llvm-objcopy/COFF/Reader.cpp
llvm/tools/llvm-objcopy/MachO/MachOReader.cpp
llvm/tools/llvm-objdump/COFFDump.cpp
llvm/tools/obj2yaml/coff2yaml.cpp