Change the MemoryBuffer::getFile* methods to take just a pointer to the
start of a filename, not a filename+length.  All clients can produce a
null terminated name, and the system api's require null terminated 
strings anyway.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49041 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Support/FileUtilities.cpp b/lib/Support/FileUtilities.cpp
index a765643..3340e8b 100644
--- a/lib/Support/FileUtilities.cpp
+++ b/lib/Support/FileUtilities.cpp
@@ -189,10 +189,8 @@
 
   // Now its safe to mmap the files into memory becasue both files
   // have a non-zero size.
-  OwningPtr<MemoryBuffer> F1(MemoryBuffer::getFile(FileA.c_str(), FileA.size(),
-                                                   Error));
-  OwningPtr<MemoryBuffer> F2(MemoryBuffer::getFile(FileB.c_str(), FileB.size(),
-                                                   Error));
+  OwningPtr<MemoryBuffer> F1(MemoryBuffer::getFile(FileA.c_str(), Error));
+  OwningPtr<MemoryBuffer> F2(MemoryBuffer::getFile(FileB.c_str(), Error));
   if (F1 == 0 || F2 == 0)
     return 2;
   
diff --git a/lib/Support/MemoryBuffer.cpp b/lib/Support/MemoryBuffer.cpp
index 4e4dabc..7a60b85 100644
--- a/lib/Support/MemoryBuffer.cpp
+++ b/lib/Support/MemoryBuffer.cpp
@@ -132,12 +132,11 @@
 /// if the Filename is "-".  If an error occurs, this returns null and fills
 /// in *ErrStr with a reason.  If stdin is empty, this API (unlike getSTDIN)
 /// returns an empty buffer.
-MemoryBuffer *MemoryBuffer::getFileOrSTDIN(const char *FilenameStart,
-                                           unsigned FnSize,
+MemoryBuffer *MemoryBuffer::getFileOrSTDIN(const char *Filename,
                                            std::string *ErrStr,
                                            int64_t FileSize) {
-  if (FnSize != 1 || FilenameStart[0] != '-')
-    return getFile(FilenameStart, FnSize, ErrStr, FileSize);
+  if (Filename[0] != '-' || Filename[1] != 0)
+    return getFile(Filename, ErrStr, FileSize);
   MemoryBuffer *M = getSTDIN();
   if (M) return M;
 
@@ -172,17 +171,13 @@
 };
 }
 
-MemoryBuffer *MemoryBuffer::getFile(const char *FilenameStart, unsigned FnSize,
-                                    std::string *ErrStr, int64_t FileSize) {
-  // Null terminate the filename.
-  SmallString<1000> Filename(FilenameStart, FilenameStart+FnSize);
-  Filename.push_back(0);
-  
+MemoryBuffer *MemoryBuffer::getFile(const char *Filename, std::string *ErrStr,
+                                    int64_t FileSize) {
   int OpenFlags = 0;
 #ifdef O_BINARY
   Flags |= O_BINARY;  // Open input file in binary mode on win32.
 #endif
-  int FD = ::open(&Filename[0], O_RDONLY|OpenFlags);
+  int FD = ::open(Filename, O_RDONLY|OpenFlags);
   if (FD == -1) {
     if (ErrStr) *ErrStr = "could not open file";
     return 0;
@@ -211,12 +206,12 @@
     if (const char *Pages = sys::Path::MapInFilePages(FD, FileSize)) {
       // Close the file descriptor, now that the whole file is in memory.
       ::close(FD);
-      return new MemoryBufferMMapFile(&Filename[0], Pages, FileSize);
+      return new MemoryBufferMMapFile(Filename, Pages, FileSize);
     }
   }
   
   OwningPtr<MemoryBuffer> SB;
-  SB.reset(MemoryBuffer::getNewUninitMemBuffer(FileSize, &Filename[0]));
+  SB.reset(MemoryBuffer::getNewUninitMemBuffer(FileSize, Filename));
   char *BufPtr = const_cast<char*>(SB->getBufferStart());
   
   unsigned BytesLeft = FileSize;