[llvm-commits] [llvm] r128098 - in /llvm/trunk: include/llvm/Support/MemoryBuffer.h lib/Support/MemoryBuffer.cpp tools/lto/LTOCodeGenerator.cpp

Rafael Espindola rafael.espindola at gmail.com
Tue Mar 22 12:20:47 PDT 2011


Author: rafael
Date: Tue Mar 22 14:20:47 2011
New Revision: 128098

URL: http://llvm.org/viewvc/llvm-project?rev=128098&view=rev
Log:
We don't need a null terminator for the output file.

Modified:
    llvm/trunk/include/llvm/Support/MemoryBuffer.h
    llvm/trunk/lib/Support/MemoryBuffer.cpp
    llvm/trunk/tools/lto/LTOCodeGenerator.cpp

Modified: llvm/trunk/include/llvm/Support/MemoryBuffer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/MemoryBuffer.h?rev=128098&r1=128097&r2=128098&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/MemoryBuffer.h (original)
+++ llvm/trunk/include/llvm/Support/MemoryBuffer.h Tue Mar 22 14:20:47 2011
@@ -64,10 +64,12 @@
   /// specified, this means that the client knows that the file exists and that
   /// it has the specified size.
   static error_code getFile(StringRef Filename, OwningPtr<MemoryBuffer> &result,
-                            int64_t FileSize = -1);
+                            int64_t FileSize = -1,
+                            bool RequiresNullTerminator = true);
   static error_code getFile(const char *Filename,
                             OwningPtr<MemoryBuffer> &result,
-                            int64_t FileSize = -1);
+                            int64_t FileSize = -1,
+                            bool RequiresNullTerminator = true);
 
   /// getOpenFile - Given an already-open file descriptor, read the file and
   /// return a MemoryBuffer.

Modified: llvm/trunk/lib/Support/MemoryBuffer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/MemoryBuffer.cpp?rev=128098&r1=128097&r2=128098&view=diff
==============================================================================
--- llvm/trunk/lib/Support/MemoryBuffer.cpp (original)
+++ llvm/trunk/lib/Support/MemoryBuffer.cpp Tue Mar 22 14:20:47 2011
@@ -196,15 +196,18 @@
 
 error_code MemoryBuffer::getFile(StringRef Filename,
                                  OwningPtr<MemoryBuffer> &result,
-                                 int64_t FileSize) {
+                                 int64_t FileSize,
+                                 bool RequiresNullTerminator) {
   // Ensure the path is null terminated.
   SmallString<256> PathBuf(Filename.begin(), Filename.end());
-  return MemoryBuffer::getFile(PathBuf.c_str(), result, FileSize);
+  return MemoryBuffer::getFile(PathBuf.c_str(), result, FileSize,
+                               RequiresNullTerminator);
 }
 
 error_code MemoryBuffer::getFile(const char *Filename,
                                  OwningPtr<MemoryBuffer> &result,
-                                 int64_t FileSize) {
+                                 int64_t FileSize,
+                                 bool RequiresNullTerminator) {
   int OpenFlags = O_RDONLY;
 #ifdef O_BINARY
   OpenFlags |= O_BINARY;  // Open input file in binary mode on win32.
@@ -213,7 +216,8 @@
   if (FD == -1) {
     return error_code(errno, posix_category());
   }
-  error_code ret = getOpenFile(FD, Filename, result, FileSize);
+  error_code ret = getOpenFile(FD, Filename, result, FileSize, FileSize,
+                               0, RequiresNullTerminator);
   close(FD);
   return ret;
 }

Modified: llvm/trunk/tools/lto/LTOCodeGenerator.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lto/LTOCodeGenerator.cpp?rev=128098&r1=128097&r2=128098&view=diff
==============================================================================
--- llvm/trunk/tools/lto/LTOCodeGenerator.cpp (original)
+++ llvm/trunk/tools/lto/LTOCodeGenerator.cpp Tue Mar 22 14:20:47 2011
@@ -209,8 +209,11 @@
 
     // read .o file into memory buffer
     OwningPtr<MemoryBuffer> BuffPtr;
-    if (error_code ec = MemoryBuffer::getFile(uniqueObjStr.c_str(),BuffPtr))
+    if (error_code ec = MemoryBuffer::getFile(uniqueObjStr.c_str(), BuffPtr,
+                                              -1, false)) {
       errMsg = ec.message();
+      return NULL;
+    }
     _nativeObjectFile = BuffPtr.take();
 
     // remove temp files





More information about the llvm-commits mailing list