diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-08-26 21:49:01 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-08-26 21:49:01 +0000 |
commit | d96d553d76b56496e73aa30910d81f0d692f36fc (patch) | |
tree | e88f2eeb131aca32e87c1a37891c47e89106a361 /llvm/lib/Support/MemoryBuffer.cpp | |
parent | 59953f0dbea2678f1ad59ac75c871a888e3a9875 (diff) | |
download | bcm5719-llvm-d96d553d76b56496e73aa30910d81f0d692f36fc.tar.gz bcm5719-llvm-d96d553d76b56496e73aa30910d81f0d692f36fc.zip |
Pass a MemoryBufferRef when we can avoid taking ownership.
The attached patch simplifies a few interfaces that don't need to take
ownership of a buffer.
For example, both parseAssembly and parseBitcodeFile will parse the
entire buffer before returning. There is no need to take ownership.
Using a MemoryBufferRef makes it obvious in the type signature that
there is no ownership transfer.
llvm-svn: 216488
Diffstat (limited to 'llvm/lib/Support/MemoryBuffer.cpp')
-rw-r--r-- | llvm/lib/Support/MemoryBuffer.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Support/MemoryBuffer.cpp b/llvm/lib/Support/MemoryBuffer.cpp index 27edce67361..9bb6b42466b 100644 --- a/llvm/lib/Support/MemoryBuffer.cpp +++ b/llvm/lib/Support/MemoryBuffer.cpp @@ -103,6 +103,12 @@ MemoryBuffer *MemoryBuffer::getMemBuffer(StringRef InputData, MemoryBufferMem(InputData, RequiresNullTerminator); } +std::unique_ptr<MemoryBuffer> +MemoryBuffer::getMemBuffer(MemoryBufferRef Ref, bool RequiresNullTerminator) { + return std::unique_ptr<MemoryBuffer>(getMemBuffer( + Ref.getBuffer(), Ref.getBufferIdentifier(), RequiresNullTerminator)); +} + /// getMemBufferCopy - Open the specified memory range as a MemoryBuffer, /// copying the contents and taking ownership of it. This has no requirements /// on EndPtr[0]. |