std::error_code getNoncachedStatValue(StringRef Path,
llvm::vfs::Status &Result);
- /// Remove the real file \p Entry from the cache.
- void invalidateCache(const FileEntry *Entry);
-
/// If path is not absolute and FileSystemOptions set the working
/// directory, the path is modified to be relative to the given
/// working directory.
return std::error_code();
}
-void FileManager::invalidateCache(const FileEntry *Entry) {
- assert(Entry && "Cannot invalidate a NULL FileEntry");
-
- SeenFileEntries.erase(Entry->getName());
-
- // FileEntry invalidation should not block future optimizations in the file
- // caches. Possible alternatives are cache truncation (invalidate last N) or
- // invalidation of the whole cache.
- //
- // FIXME: This is broken. We sometimes have the same FileEntry* shared
- // between multiple SeenFileEntries, so this can leave dangling pointers.
- UniqueRealFiles.erase(Entry->getUniqueID());
-}
-
void FileManager::GetUniqueIDMapping(
SmallVectorImpl<const FileEntry *> &UIDToFiles) const {
UIDToFiles.clear();