From 1961f14cf965e63d944d8888a089067cde142d10 Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Thu, 21 Aug 2014 20:44:56 +0000 Subject: Explicitly pass ownership of the MemoryBuffer to AddNewSourceBuffer using std::unique_ptr llvm-svn: 216223 --- llvm/lib/Support/SourceMgr.cpp | 7 +------ llvm/lib/Support/YAMLParser.cpp | 8 +++++--- 2 files changed, 6 insertions(+), 9 deletions(-) (limited to 'llvm/lib/Support') diff --git a/llvm/lib/Support/SourceMgr.cpp b/llvm/lib/Support/SourceMgr.cpp index 003cb56e6cb..f3a422c9d27 100644 --- a/llvm/lib/Support/SourceMgr.cpp +++ b/llvm/lib/Support/SourceMgr.cpp @@ -42,11 +42,6 @@ SourceMgr::~SourceMgr() { // Delete the line # cache if allocated. if (LineNoCacheTy *Cache = getCache(LineNoCache)) delete Cache; - - while (!Buffers.empty()) { - delete Buffers.back().Buffer; - Buffers.pop_back(); - } } unsigned SourceMgr::AddIncludeFile(const std::string &Filename, @@ -67,7 +62,7 @@ unsigned SourceMgr::AddIncludeFile(const std::string &Filename, if (!NewBufOrErr) return 0; - return AddNewSourceBuffer(NewBufOrErr.get().release(), IncludeLoc); + return AddNewSourceBuffer(std::move(*NewBufOrErr), IncludeLoc); } unsigned SourceMgr::FindBufferContainingLoc(SMLoc Loc) const { diff --git a/llvm/lib/Support/YAMLParser.cpp b/llvm/lib/Support/YAMLParser.cpp index 01cd926297a..07a326ee554 100644 --- a/llvm/lib/Support/YAMLParser.cpp +++ b/llvm/lib/Support/YAMLParser.cpp @@ -708,8 +708,10 @@ Scanner::Scanner(StringRef Input, SourceMgr &sm) , IsStartOfStream(true) , IsSimpleKeyAllowed(true) , Failed(false) { - InputBuffer = MemoryBuffer::getMemBuffer(Input, "YAML"); - SM.AddNewSourceBuffer(InputBuffer, SMLoc()); + std::unique_ptr InputBufferOwner( + MemoryBuffer::getMemBuffer(Input, "YAML")); + InputBuffer = InputBufferOwner.get(); + SM.AddNewSourceBuffer(std::move(InputBufferOwner), SMLoc()); Current = InputBuffer->getBufferStart(); End = InputBuffer->getBufferEnd(); } @@ -719,7 +721,7 @@ Scanner::Scanner(std::unique_ptr Buffer, SourceMgr &SM_) Current(InputBuffer->getBufferStart()), End(InputBuffer->getBufferEnd()), Indent(-1), Column(0), Line(0), FlowLevel(0), IsStartOfStream(true), IsSimpleKeyAllowed(true), Failed(false) { - SM.AddNewSourceBuffer(Buffer.release(), SMLoc()); + SM.AddNewSourceBuffer(std::move(Buffer), SMLoc()); } Token &Scanner::peekNext() { -- cgit v1.2.3