80-columns.
[oota-llvm.git] / lib / Support / FileUtilities.cpp
index 6339e005461efad949ba2f4626a2a6eec399da7f..b2dc47dc698a197fde88a06aa7709ae68808fedc 100644 (file)
@@ -13,7 +13,6 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Support/FileUtilities.h"
-#include "llvm/ADT/OwningPtr.h"
 #include "llvm/ADT/SmallString.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/Support/Path.h"
@@ -175,36 +174,15 @@ int llvm::DiffFilesWithTolerance(StringRef NameA,
                                  StringRef NameB,
                                  double AbsTol, double RelTol,
                                  std::string *Error) {
-  // Check for zero length files because some systems croak when you try to
-  // mmap an empty file.
-  uint64_t A_size;
-  if (sys::fs::file_size(NameA, A_size))
-    return false;
-
-  uint64_t B_size;
-  if (sys::fs::file_size(NameB, B_size))
-    return false;
-
-  // If they are both zero sized then they're the same
-  if (A_size == 0 && B_size == 0)
-    return 0;
-
-  // If only one of them is zero sized then they can't be the same
-  if ((A_size == 0 || B_size == 0)) {
-    if (Error)
-      *Error = "Files differ: one is zero-sized, the other isn't";
-    return 1;
-  }
-
   // Now its safe to mmap the files into memory because both files
   // have a non-zero size.
-  OwningPtr<MemoryBuffer> F1;
+  std::unique_ptr<MemoryBuffer> F1;
   if (error_code ec = MemoryBuffer::getFile(NameA, F1)) {
     if (Error)
       *Error = ec.message();
     return 2;
   }
-  OwningPtr<MemoryBuffer> F2;
+  std::unique_ptr<MemoryBuffer> F2;
   if (error_code ec = MemoryBuffer::getFile(NameB, F2)) {
     if (Error)
       *Error = ec.message();
@@ -218,6 +196,8 @@ int llvm::DiffFilesWithTolerance(StringRef NameA,
   const char *File2End = F2->getBufferEnd();
   const char *F1P = File1Start;
   const char *F2P = File2Start;
+  uint64_t A_size = F1->getBufferSize();
+  uint64_t B_size = F2->getBufferSize();
 
   // Are the buffers identical?  Common case: Handle this efficiently.
   if (A_size == B_size &&