summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/MemoryBuffer.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-08-26 21:49:01 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-08-26 21:49:01 +0000
commitd96d553d76b56496e73aa30910d81f0d692f36fc (patch)
treee88f2eeb131aca32e87c1a37891c47e89106a361 /llvm/lib/Support/MemoryBuffer.cpp
parent59953f0dbea2678f1ad59ac75c871a888e3a9875 (diff)
downloadbcm5719-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.cpp6
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].
OpenPOWER on IntegriCloud