diff options
| author | Chris Lattner <sabre@nondot.org> | 2008-04-01 18:04:03 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2008-04-01 18:04:03 +0000 |
| commit | 6f2ffdb73f9553b3021863bf60ee26bb8c099eb7 (patch) | |
| tree | a80cea5404f45341b799001f8ecd061867fdf9e2 /llvm/lib/Support/MemoryBuffer.cpp | |
| parent | 5db870c90409eebff58ce199ea625d880eb10b20 (diff) | |
| download | llvm-6f2ffdb73f9553b3021863bf60ee26bb8c099eb7.zip llvm-6f2ffdb73f9553b3021863bf60ee26bb8c099eb7.tar.gz llvm-6f2ffdb73f9553b3021863bf60ee26bb8c099eb7.tar.bz2 | |
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.
llvm-svn: 49041
Diffstat (limited to 'llvm/lib/Support/MemoryBuffer.cpp')
| -rw-r--r-- | llvm/lib/Support/MemoryBuffer.cpp | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/llvm/lib/Support/MemoryBuffer.cpp b/llvm/lib/Support/MemoryBuffer.cpp index 4e4dabc..7a60b85 100644 --- a/llvm/lib/Support/MemoryBuffer.cpp +++ b/llvm/lib/Support/MemoryBuffer.cpp @@ -132,12 +132,11 @@ MemoryBuffer *MemoryBuffer::getNewMemBuffer(unsigned Size, /// 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 @@ public: }; } -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 @@ MemoryBuffer *MemoryBuffer::getFile(const char *FilenameStart, unsigned FnSize, 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; |
