stringref'ize API

llvm-svn: 119997
This commit is contained in:
Chris Lattner 2010-11-23 04:45:28 +00:00
parent 7c434b6937
commit 6e6409989f
2 changed files with 21 additions and 32 deletions

View File

@ -222,15 +222,6 @@ public:
ErrorStr, Entry->getSize(), FileInfo);
}
llvm::MemoryBuffer *getBufferForFile(llvm::StringRef Filename,
const FileSystemOptions &FileSystemOpts,
std::string *ErrorStr = 0,
int64_t FileSize = -1,
struct stat *FileInfo = 0) {
return getBufferForFile(Filename.begin(), Filename.end(), FileSystemOpts,
ErrorStr, FileSize, FileInfo);
}
llvm::MemoryBuffer *getBufferForFile(const char *FilenameStart,
const char *FilenameEnd,
const FileSystemOptions &FileSystemOpts,
std::string *ErrorStr = 0,
int64_t FileSize = -1,
@ -241,7 +232,7 @@ public:
/// working directory.
static void FixupRelativePath(llvm::sys::Path &path,
const FileSystemOptions &FSOpts);
void PrintStats() const;
};

View File

@ -385,20 +385,27 @@ FileManager::getVirtualFile(llvm::StringRef Filename, off_t Size,
return UFE;
}
llvm::MemoryBuffer *FileManager::
getBufferForFile(const char *FilenameStart, const char *FilenameEnd,
const FileSystemOptions &FileSystemOpts,
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));
FixupRelativePath(FilePath, FileSystemOpts);
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(llvm::StringRef Filename,
const FileSystemOptions &FileSystemOpts,
std::string *ErrorStr, int64_t FileSize,
struct stat *FileInfo) {
if (FileSystemOpts.WorkingDir.empty())
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, "