[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