diff --git a/include/llvm/Support/MemoryBuffer.h b/include/llvm/Support/MemoryBuffer.h index 921d428b9b2..7b849fdb867 100644 --- a/include/llvm/Support/MemoryBuffer.h +++ b/include/llvm/Support/MemoryBuffer.h @@ -123,15 +123,6 @@ public: static std::unique_ptr getNewMemBuffer(size_t Size, StringRef BufferName = ""); - /// Allocate a new MemoryBuffer of the specified size that is not initialized. - /// Note that the caller should initialize the memory allocated by this - /// method. The memory is owned by the MemoryBuffer object. - // - // TODO: Remove this and migrate callers to - // WritableMemoryBuffer::getNewUninitMemBuffer - static std::unique_ptr - getNewUninitMemBuffer(size_t Size, const Twine &BufferName = ""); - /// Read all of stdin into a file buffer, and return it. static ErrorOr> getSTDIN(); @@ -199,6 +190,9 @@ public: getFileSlice(const Twine &Filename, uint64_t MapSize, uint64_t Offset, bool IsVolatile = false); + /// Allocate a new MemoryBuffer of the specified size that is not initialized. + /// Note that the caller should initialize the memory allocated by this + /// method. The memory is owned by the MemoryBuffer object. static std::unique_ptr getNewUninitMemBuffer(size_t Size, const Twine &BufferName = ""); diff --git a/lib/Support/MemoryBuffer.cpp b/lib/Support/MemoryBuffer.cpp index 8a93f97930c..c709fc416df 100644 --- a/lib/Support/MemoryBuffer.cpp +++ b/lib/Support/MemoryBuffer.cpp @@ -139,18 +139,13 @@ MemoryBuffer::getMemBufferCopy(StringRef InputData, const Twine &BufferName) { return nullptr; } -std::unique_ptr -MemoryBuffer::getNewUninitMemBuffer(size_t Size, const Twine &BufferName) { - return WritableMemoryBuffer::getNewUninitMemBuffer(Size, BufferName); -} - std::unique_ptr MemoryBuffer::getNewMemBuffer(size_t Size, StringRef BufferName) { - std::unique_ptr SB = getNewUninitMemBuffer(Size, BufferName); + auto SB = WritableMemoryBuffer::getNewUninitMemBuffer(Size, BufferName); if (!SB) return nullptr; - memset(const_cast(SB->getBufferStart()), 0, Size); - return SB; + memset(SB->getBufferStart(), 0, Size); + return std::move(SB); } ErrorOr> diff --git a/unittests/Support/MemoryBufferTest.cpp b/unittests/Support/MemoryBufferTest.cpp index 0d9578621e0..5e3c8db0279 100644 --- a/unittests/Support/MemoryBufferTest.cpp +++ b/unittests/Support/MemoryBufferTest.cpp @@ -104,15 +104,15 @@ TEST_F(MemoryBufferTest, copy) { TEST_F(MemoryBufferTest, make_new) { // 0-sized buffer - OwningBuffer Zero(MemoryBuffer::getNewUninitMemBuffer(0)); + OwningBuffer Zero(WritableMemoryBuffer::getNewUninitMemBuffer(0)); EXPECT_TRUE(nullptr != Zero.get()); // uninitialized buffer with no name - OwningBuffer One(MemoryBuffer::getNewUninitMemBuffer(321)); + OwningBuffer One(WritableMemoryBuffer::getNewUninitMemBuffer(321)); EXPECT_TRUE(nullptr != One.get()); // uninitialized buffer with name - OwningBuffer Two(MemoryBuffer::getNewUninitMemBuffer(123, "bla")); + OwningBuffer Two(WritableMemoryBuffer::getNewUninitMemBuffer(123, "bla")); EXPECT_TRUE(nullptr != Two.get()); // 0-initialized buffer with no name