aboutsummaryrefslogtreecommitdiff
path: root/include/clang/Basic/SourceManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Basic/SourceManager.h')
-rw-r--r--include/clang/Basic/SourceManager.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/include/clang/Basic/SourceManager.h b/include/clang/Basic/SourceManager.h
index f06a6fbf54..dd8a86cc7e 100644
--- a/include/clang/Basic/SourceManager.h
+++ b/include/clang/Basic/SourceManager.h
@@ -154,13 +154,21 @@ class SourceManager {
/// MacroIDs - Information about each MacroID.
std::vector<SrcMgr::MacroIDInfo> MacroIDs;
+ /// LastLineNo - These ivars serve as a cache used in the getLineNumber
+ /// method which is used to speedup getLineNumber calls to nearby locations.
+ unsigned LastLineNoFileIDQuery;
+ SrcMgr::FileInfo *LastLineNoFileInfo;
+ unsigned LastLineNoFilePos;
+ unsigned LastLineNoResult;
public:
- SourceManager() {}
+ SourceManager() : LastLineNoFileIDQuery(~0U) {}
~SourceManager();
void clearIDTables() {
FileIDs.clear();
MacroIDs.clear();
+ LastLineNoFileIDQuery = ~0U;
+ LastLineNoFileInfo = 0;
}
/// createFileID - Create a new FileID that represents the specified file