summaryrefslogtreecommitdiff
path: root/include/llvm/Object/Binary.h
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-06-23 21:53:12 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-06-23 21:53:12 +0000
commit1f659329b63aa1d1af2b2bfc8b174a8ccdaba2c0 (patch)
treedc64a751796af7cd61a83b0cb8a8d8ca3145a95c /include/llvm/Object/Binary.h
parent7e7e89f17819d30703543375120dff52d5aaa414 (diff)
downloadllvm-1f659329b63aa1d1af2b2bfc8b174a8ccdaba2c0.tar.gz
llvm-1f659329b63aa1d1af2b2bfc8b174a8ccdaba2c0.tar.bz2
llvm-1f659329b63aa1d1af2b2bfc8b174a8ccdaba2c0.tar.xz
Make ObjectFile and BitcodeReader always own the MemoryBuffer.
This allows us to just use a std::unique_ptr to store the pointer to the buffer. The flip side is that they have to support releasing the buffer back to the caller. Overall this looks like a more efficient and less brittle api. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211542 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Object/Binary.h')
-rw-r--r--include/llvm/Object/Binary.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/llvm/Object/Binary.h b/include/llvm/Object/Binary.h
index 8ac84e78d4..a87a006450 100644
--- a/include/llvm/Object/Binary.h
+++ b/include/llvm/Object/Binary.h
@@ -32,12 +32,11 @@ private:
Binary(const Binary &other) LLVM_DELETED_FUNCTION;
unsigned int TypeID;
- bool BufferOwned;
protected:
- MemoryBuffer *Data;
+ std::unique_ptr<MemoryBuffer> Data;
- Binary(unsigned int Type, MemoryBuffer *Source, bool BufferOwned = true);
+ Binary(unsigned int Type, MemoryBuffer *Source);
enum {
ID_Archive,
@@ -79,6 +78,7 @@ public:
virtual ~Binary();
StringRef getData() const;
+ MemoryBuffer *releaseBuffer() { return Data.release(); }
StringRef getFileName() const;
// Cast methods.