[cfe-commits] r159256 - in /cfe/trunk: include/clang/Basic/FileManager.h lib/Basic/FileManager.cpp
NAKAMURA Takumi
geek4civic at gmail.com
Wed Jun 27 04:34:53 PDT 2012
It would be win32-incompatible.
See again UniqueDirs on Win32.
...Takumi
2012/6/27 Axel Naumann <Axel.Naumann at cern.ch>:
> Author: axel
> Date: Wed Jun 27 04:17:42 2012
> New Revision: 159256
>
> URL: http://llvm.org/viewvc/llvm-project?rev=159256&view=rev
> Log:
> >From Vassil Vassilev:
> add interface for removing a FileEntry from the cache.
> Forces a re-read the contents from disk, e.g. because a tool (like cling) wants to pick up a modified file.
>
> Modified:
> cfe/trunk/include/clang/Basic/FileManager.h
> cfe/trunk/lib/Basic/FileManager.cpp
>
> Modified: cfe/trunk/include/clang/Basic/FileManager.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/FileManager.h?rev=159256&r1=159255&r2=159256&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Basic/FileManager.h (original)
> +++ cfe/trunk/include/clang/Basic/FileManager.h Wed Jun 27 04:17:42 2012
> @@ -222,6 +222,9 @@
> /// FileManager's FileSystemOptions.
> bool getNoncachedStatValue(StringRef Path, struct stat &StatBuf);
>
> + /// \brief Remove the real file Entry from the cache.
> + void InvalidateCache(const FileEntry* Entry);
> +
> /// \brief If path is not absolute and FileSystemOptions set the working
> /// directory, the path is modified to be relative to the given
> /// working directory.
>
> Modified: cfe/trunk/lib/Basic/FileManager.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/FileManager.cpp?rev=159256&r1=159255&r2=159256&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Basic/FileManager.cpp (original)
> +++ cfe/trunk/lib/Basic/FileManager.cpp Wed Jun 27 04:17:42 2012
> @@ -111,6 +111,8 @@
> }
>
> size_t size() const { return UniqueFiles.size(); }
> +
> + friend class FileManager;
> };
>
> //===----------------------------------------------------------------------===//
> @@ -152,6 +154,8 @@
> }
>
> size_t size() const { return UniqueFiles.size(); }
> +
> + friend class FileManager;
> };
>
> #endif
> @@ -559,6 +563,15 @@
> return ::stat(FilePath.c_str(), &StatBuf) != 0;
> }
>
> +void FileManager::InvalidateCache(const FileEntry* Entry) {
> + if (!Entry)
> + return;
> +
> + SeenFileEntries.erase(Entry->getName());
> + UniqueRealFiles.UniqueFiles.erase(*Entry);
> +}
> +
> +
> void FileManager::GetUniqueIDMapping(
> SmallVectorImpl<const FileEntry *> &UIDToFiles) const {
> UIDToFiles.clear();
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list