diff options
author | Chris Lattner <sabre@nondot.org> | 2009-01-17 03:48:08 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-01-17 03:48:08 +0000 |
commit | c6fe32a91c7372caf09152ee31a24c4b5d24deed (patch) | |
tree | 89c7b9a3db4994a83b04bfef9f08bfc108a58c71 /include/clang/Basic/SourceManager.h | |
parent | 5bdf3a81eb53ed9ca39df6e6622ee41b81425377 (diff) |
Instead of iterating over FileID's, have PTH generation iterate over the
content cache directly. Content cache has a 1-1 mapping with fileentries,
whereas multiple FileIDs can be the same FileEntry.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62401 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Basic/SourceManager.h')
-rw-r--r-- | include/clang/Basic/SourceManager.h | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h index 1eac4f15de..9a67627485 100644 --- a/include/clang/Basic/SourceManager.h +++ b/include/clang/Basic/SourceManager.h @@ -478,31 +478,11 @@ public: return getFIDInfo(FileID)->getFileCharacteristic(); } - // Iterators over FileIDs. - - class fileid_iterator { - std::vector<SrcMgr::FileIDInfo>::iterator I; - unsigned fid; - public: - fileid_iterator(std::vector<SrcMgr::FileIDInfo>::iterator i, unsigned f) - : I(i), fid(f) {} - - bool operator==(const fileid_iterator& X) const { return X.fid == fid; } - bool operator!=(const fileid_iterator& X) const { return X.fid != fid; } - fileid_iterator& operator++() { ++fid; ++I; return *this; } - - unsigned getFileID() const { return fid; } - SrcMgr::FileIDInfo& getFileIDInfo() { return *I; } - }; - - fileid_iterator fileid_begin() { - return fileid_iterator(FileIDs.begin(), 1); - } - - fileid_iterator fileid_end() { - return fileid_iterator(FileIDs.end(), FileIDs.size()+1); - } - + // Iterators over FileInfos. + typedef std::set<SrcMgr::ContentCache>::const_iterator fileinfo_iterator; + fileinfo_iterator fileinfo_begin() const { return FileInfos.begin(); } + fileinfo_iterator fileinfo_end() const { return FileInfos.end(); } + /// PrintStats - Print statistics to stderr. /// void PrintStats() const; |