Simplify the code a bit with std::unique_ptr.
authorRafael Espindola <rafael.espindola@gmail.com>
Fri, 1 Aug 2014 14:11:14 +0000 (14:11 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Fri, 1 Aug 2014 14:11:14 +0000 (14:11 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214514 91177308-0d34-0410-b5e6-96231b3b80d8

utils/FileCheck/FileCheck.cpp

index 9245e1143ad4068141b983bc2fd74617b6bf5e1e..9cd1fe75760b1f3deab6bfc1648fa9bd9672b457 100644 (file)
@@ -631,7 +631,7 @@ struct CheckString {
 ///
 /// \param PreserveHorizontal Don't squash consecutive horizontal whitespace
 /// characters to a single space.
-static MemoryBuffer *CanonicalizeInputFile(MemoryBuffer *MB,
+static MemoryBuffer *CanonicalizeInputFile(std::unique_ptr<MemoryBuffer> MB,
                                            bool PreserveHorizontal) {
   SmallString<128> NewFile;
   NewFile.reserve(MB->getBufferSize());
@@ -657,12 +657,8 @@ static MemoryBuffer *CanonicalizeInputFile(MemoryBuffer *MB,
       ++Ptr;
   }
 
-  // Free the old buffer and return a new one.
-  MemoryBuffer *MB2 =
-    MemoryBuffer::getMemBufferCopy(NewFile.str(), MB->getBufferIdentifier());
-
-  delete MB;
-  return MB2;
+  return MemoryBuffer::getMemBufferCopy(NewFile.str(),
+                                        MB->getBufferIdentifier());
 }
 
 static bool IsPartOfWord(char c) {
@@ -837,7 +833,7 @@ static bool ReadCheckFile(SourceMgr &SM,
 
   // If we want to canonicalize whitespace, strip excess whitespace from the
   // buffer containing the CHECK lines. Remove DOS style line endings.
-  MemoryBuffer *F = CanonicalizeInputFile(FileOrErr.get().release(),
+  MemoryBuffer *F = CanonicalizeInputFile(std::move(FileOrErr.get()),
                                           NoCanonicalizeWhiteSpace);
 
   SM.AddNewSourceBuffer(F, SMLoc());
@@ -1272,7 +1268,7 @@ int main(int argc, char **argv) {
   // Remove duplicate spaces in the input file if requested.
   // Remove DOS style line endings.
   MemoryBuffer *F =
-    CanonicalizeInputFile(File.release(), NoCanonicalizeWhiteSpace);
+    CanonicalizeInputFile(std::move(File), NoCanonicalizeWhiteSpace);
 
   SM.AddNewSourceBuffer(F, SMLoc());