diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-03-17 22:18:42 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-03-17 22:18:42 +0000 |
commit | 9916d2ac3941513e301e39dee76a981c7caab694 (patch) | |
tree | 0d83c49ddf87b257b95d378dc8df1bb9d61d6706 /tools/lto | |
parent | 813c9a0f19c0d27085a3ea81eb44033747007741 (diff) | |
download | llvm-9916d2ac3941513e301e39dee76a981c7caab694.tar.gz llvm-9916d2ac3941513e301e39dee76a981c7caab694.tar.bz2 llvm-9916d2ac3941513e301e39dee76a981c7caab694.tar.xz |
Use RequiresNullTerminator to create buffers without a null terminator
instead of copying.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127835 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/lto')
-rw-r--r-- | tools/lto/LTOModule.cpp | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/tools/lto/LTOModule.cpp b/tools/lto/LTOModule.cpp index 9de3d5ffce..310e647b1f 100644 --- a/tools/lto/LTOModule.cpp +++ b/tools/lto/LTOModule.cpp @@ -114,18 +114,11 @@ LTOModule *LTOModule::makeLTOModule(int fd, const char *path, return makeLTOModule(buffer.get(), errMsg); } -/// makeBuffer - Create a MemoryBuffer from a memory range. MemoryBuffer -/// requires the byte past end of the buffer to be a zero. We might get lucky -/// and already be that way, otherwise make a copy. Also if next byte is on a -/// different page, don't assume it is readable. +/// makeBuffer - Create a MemoryBuffer from a memory range. MemoryBuffer *LTOModule::makeBuffer(const void *mem, size_t length) { const char *startPtr = (char*)mem; const char *endPtr = startPtr+length; - if (((uintptr_t)endPtr & (sys::Process::GetPageSize()-1)) == 0 || - *endPtr != 0) - return MemoryBuffer::getMemBufferCopy(StringRef(startPtr, length)); - - return MemoryBuffer::getMemBuffer(StringRef(startPtr, length)); + return MemoryBuffer::getMemBuffer(StringRef(startPtr, length), "", false); } |