summaryrefslogtreecommitdiff
path: root/lib/Support
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-04-01 18:04:03 +0000
committerChris Lattner <sabre@nondot.org>2008-04-01 18:04:03 +0000
commit038112a4e0a9afd656f415ab397a230ae5921627 (patch)
tree1e533932de12cd50bf288f55438475ed736bdce8 /lib/Support
parent8eedc9ee2ca3bb489957de68e3f907c88ca39efc (diff)
downloadllvm-038112a4e0a9afd656f415ab397a230ae5921627.tar.gz
llvm-038112a4e0a9afd656f415ab397a230ae5921627.tar.bz2
llvm-038112a4e0a9afd656f415ab397a230ae5921627.tar.xz
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
Diffstat (limited to 'lib/Support')
-rw-r--r--lib/Support/FileUtilities.cpp6
-rw-r--r--lib/Support/MemoryBuffer.cpp21
2 files changed, 10 insertions, 17 deletions
diff --git a/lib/Support/FileUtilities.cpp b/lib/Support/FileUtilities.cpp
index a765643b26..3340e8b2eb 100644
--- a/lib/Support/FileUtilities.cpp
+++ b/lib/Support/FileUtilities.cpp
@@ -189,10 +189,8 @@ int llvm::DiffFilesWithTolerance(const sys::PathWithStatus &FileA,
// 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 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<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;