FileManager:

- set the 'StatSysCallCache' object using a setter method instead of
  FileManager's constructor. This allows the cache to be installed after the
  FileManager object is created.
- Add 'file mode' to FileEntry (useful for stat caching)

llvm-svn: 64351
This commit is contained in:
Ted Kremenek
2009-02-12 03:17:57 +00:00
parent 3f6c631ea1
commit 5d7e2e1781
2 changed files with 19 additions and 11 deletions

View File

@@ -122,7 +122,8 @@ public:
return
const_cast<FileEntry&>(
*UniqueFiles.insert(FileEntry(StatBuf.st_dev,
StatBuf.st_ino)).first);
StatBuf.st_ino,
StatBuf.st_mode)).first);
}
size_t size() { return UniqueFiles.size(); }
@@ -134,11 +135,10 @@ public:
// Common logic.
//===----------------------------------------------------------------------===//
FileManager::FileManager(StatSysCallCache* statCache)
FileManager::FileManager()
: UniqueDirs(*new UniqueDirContainer),
UniqueFiles(*new UniqueFileContainer),
DirEntries(64), FileEntries(64), NextFileUID(0),
StatCache(statCache) {
DirEntries(64), FileEntries(64), NextFileUID(0) {
NumDirLookups = NumFileLookups = 0;
NumDirCacheMisses = NumFileCacheMisses = 0;
}
@@ -146,10 +146,8 @@ FileManager::FileManager(StatSysCallCache* statCache)
FileManager::~FileManager() {
delete &UniqueDirs;
delete &UniqueFiles;
delete StatCache;
}
/// getDirectory - Lookup, cache, and verify the specified directory. This
/// returns null if the directory doesn't exist.
///