summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/FileManager.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-11-23 19:38:22 +0000
committerChris Lattner <sabre@nondot.org>2010-11-23 19:38:22 +0000
commitb3c814538bb664448027cfc96b9c6073012d6352 (patch)
tree9cd8c9c5840434ca39ce6770677c0dec7b14afa5 /clang/lib/Basic/FileManager.cpp
parent2a6fa47b266f090af059a8a5076a590840b5f0c4 (diff)
downloadbcm5719-llvm-b3c814538bb664448027cfc96b9c6073012d6352.tar.gz
bcm5719-llvm-b3c814538bb664448027cfc96b9c6073012d6352.zip
r120013 dropped passing in the precomputed file size to
MemoryBuffer::getFile, causing us to pick up a fstat for every file. Restore the optimization. llvm-svn: 120032
Diffstat (limited to 'clang/lib/Basic/FileManager.cpp')
-rw-r--r--clang/lib/Basic/FileManager.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Basic/FileManager.cpp b/clang/lib/Basic/FileManager.cpp
index 9572aaadb7a..b884388c0b5 100644
--- a/clang/lib/Basic/FileManager.cpp
+++ b/clang/lib/Basic/FileManager.cpp
@@ -394,11 +394,12 @@ llvm::MemoryBuffer *FileManager::
getBufferForFile(const FileEntry *Entry, std::string *ErrorStr) {
llvm::StringRef Filename = Entry->getName();
if (FileSystemOpts.WorkingDir.empty())
- return llvm::MemoryBuffer::getFile(Filename, ErrorStr);
+ return llvm::MemoryBuffer::getFile(Filename, ErrorStr, Entry->getSize());
llvm::sys::Path FilePath(Filename);
FixupRelativePath(FilePath, FileSystemOpts);
- return llvm::MemoryBuffer::getFile(FilePath.c_str(), ErrorStr);
+ return llvm::MemoryBuffer::getFile(FilePath.c_str(), ErrorStr,
+ Entry->getSize());
}
llvm::MemoryBuffer *FileManager::
OpenPOWER on IntegriCloud