diff options
author | Alexander Shaposhnikov <shal1t712@gmail.com> | 2018-10-16 05:40:18 +0000 |
---|---|---|
committer | Alexander Shaposhnikov <shal1t712@gmail.com> | 2018-10-16 05:40:18 +0000 |
commit | 3d4c4aca0668ad7017cd84597b126cfd8a59895d (patch) | |
tree | 408ae94ff69b3eb5dce837ad91a31aaa4e12ba57 /llvm/tools/llvm-objcopy/Object.cpp | |
parent | fdfd98ceecd17bf5d72bf4ed1a86948ad590c647 (diff) | |
download | bcm5719-llvm-3d4c4aca0668ad7017cd84597b126cfd8a59895d.tar.gz bcm5719-llvm-3d4c4aca0668ad7017cd84597b126cfd8a59895d.zip |
[llvm-objcopy] Factor out Buffer
In this diff we move out the hierarchy of buffers from Object.h/Object.cpp
into separate files since it is not ELF-specific and will be reused later.
After this change Object.h/Object.cpp are almost exclusively ELF-specific.
Test plan: make check-all
Differential revision: https://reviews.llvm.org/D53298
llvm-svn: 344585
Diffstat (limited to 'llvm/tools/llvm-objcopy/Object.cpp')
-rw-r--r-- | llvm/tools/llvm-objcopy/Object.cpp | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/llvm/tools/llvm-objcopy/Object.cpp b/llvm/tools/llvm-objcopy/Object.cpp index ddf811a769b..d677579ea23 100644 --- a/llvm/tools/llvm-objcopy/Object.cpp +++ b/llvm/tools/llvm-objcopy/Object.cpp @@ -33,37 +33,6 @@ using namespace llvm::objcopy; using namespace object; using namespace ELF; -Buffer::~Buffer() {} - -void FileBuffer::allocate(size_t Size) { - Expected<std::unique_ptr<FileOutputBuffer>> BufferOrErr = - FileOutputBuffer::create(getName(), Size, FileOutputBuffer::F_executable); - handleAllErrors(BufferOrErr.takeError(), [this](const ErrorInfoBase &E) { - error("failed to open " + getName() + ": " + E.message()); - }); - Buf = std::move(*BufferOrErr); -} - -Error FileBuffer::commit() { return Buf->commit(); } - -uint8_t *FileBuffer::getBufferStart() { - return reinterpret_cast<uint8_t *>(Buf->getBufferStart()); -} - -void MemBuffer::allocate(size_t Size) { - Buf = WritableMemoryBuffer::getNewMemBuffer(Size, getName()); -} - -Error MemBuffer::commit() { return Error::success(); } - -uint8_t *MemBuffer::getBufferStart() { - return reinterpret_cast<uint8_t *>(Buf->getBufferStart()); -} - -std::unique_ptr<WritableMemoryBuffer> MemBuffer::releaseMemoryBuffer() { - return std::move(Buf); -} - template <class ELFT> void ELFWriter<ELFT>::writePhdr(const Segment &Seg) { uint8_t *B = Buf.getBufferStart(); B += Obj.ProgramHdrSegment.Offset + Seg.Index * sizeof(Elf_Phdr); |