From 038112a4e0a9afd656f415ab397a230ae5921627 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 1 Apr 2008 18:04:03 +0000 Subject: 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 --- lib/Support/MemoryBuffer.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'lib/Support/MemoryBuffer.cpp') diff --git a/lib/Support/MemoryBuffer.cpp b/lib/Support/MemoryBuffer.cpp index 4e4dabc5e7..7a60b85b91 100644 --- a/lib/Support/MemoryBuffer.cpp +++ b/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 SB; - SB.reset(MemoryBuffer::getNewUninitMemBuffer(FileSize, &Filename[0])); + SB.reset(MemoryBuffer::getNewUninitMemBuffer(FileSize, Filename)); char *BufPtr = const_cast(SB->getBufferStart()); unsigned BytesLeft = FileSize; -- cgit v1.2.3