diff options
author | Chris Lattner <sabre@nondot.org> | 2010-11-23 04:45:28 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-11-23 04:45:28 +0000 |
commit | 67452f51aec1ad8a3e4c6622c0c57c5d8dc1b6a3 (patch) | |
tree | f8d0d3f08c6a3dd7650fd606e4788c37508045b2 /lib/Basic/FileManager.cpp | |
parent | 7ad629ebefa87269cc1887debc83cfa58c285a80 (diff) |
stringref'ize API
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119997 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Basic/FileManager.cpp')
-rw-r--r-- | lib/Basic/FileManager.cpp | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/lib/Basic/FileManager.cpp b/lib/Basic/FileManager.cpp index ff07c79cdf..e5ec545f16 100644 --- a/lib/Basic/FileManager.cpp +++ b/lib/Basic/FileManager.cpp @@ -385,20 +385,27 @@ FileManager::getVirtualFile(llvm::StringRef Filename, off_t Size, return UFE; } +void FileManager::FixupRelativePath(llvm::sys::Path &path, + const FileSystemOptions &FSOpts) { + if (FSOpts.WorkingDir.empty() || path.isAbsolute()) return; + + llvm::sys::Path NewPath(FSOpts.WorkingDir); + NewPath.appendComponent(path.str()); + path = NewPath; +} + + + llvm::MemoryBuffer *FileManager:: -getBufferForFile(const char *FilenameStart, const char *FilenameEnd, +getBufferForFile(llvm::StringRef Filename, const FileSystemOptions &FileSystemOpts, - std::string *ErrorStr, - int64_t FileSize, + std::string *ErrorStr, int64_t FileSize, struct stat *FileInfo) { - assert(FilenameEnd[0] == 0); if (FileSystemOpts.WorkingDir.empty()) - return llvm::MemoryBuffer::getFile(FilenameStart, ErrorStr, - FileSize, FileInfo); - llvm::sys::Path FilePath(llvm::StringRef(FilenameStart, - FilenameEnd-FilenameStart)); + return llvm::MemoryBuffer::getFile(Filename, ErrorStr, FileSize, FileInfo); + + llvm::sys::Path FilePath(Filename); FixupRelativePath(FilePath, FileSystemOpts); - return llvm::MemoryBuffer::getFile(FilePath.c_str(), ErrorStr, FileSize, FileInfo); } @@ -415,15 +422,6 @@ int FileManager::stat_cached(const char *path, struct stat *buf, : stat(FilePath.c_str(), buf); } -void FileManager::FixupRelativePath(llvm::sys::Path &path, - const FileSystemOptions &FSOpts) { - if (!FSOpts.WorkingDir.empty() && !path.isAbsolute()) { - llvm::sys::Path NewPath(FSOpts.WorkingDir); - NewPath.appendComponent(path.str()); - path = NewPath; - } -} - void FileManager::PrintStats() const { llvm::errs() << "\n*** File Manager Stats:\n"; llvm::errs() << UniqueFiles.size() << " files found, " |