[PATCH] D31406: [clang-tidy] Reuse FileID in getLocation
Chih-Hung Hsieh via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 28 13:01:01 PDT 2017
chh updated this revision to Diff 93284.
chh added a comment.
Use DenseMap<StringRef, FileID>.
https://reviews.llvm.org/D31406
Files:
clang-tidy/ClangTidy.cpp
Index: clang-tidy/ClangTidy.cpp
===================================================================
--- clang-tidy/ClangTidy.cpp
+++ clang-tidy/ClangTidy.cpp
@@ -39,6 +39,7 @@
#include "clang/Tooling/Refactoring.h"
#include "clang/Tooling/ReplacementsYaml.h"
#include "clang/Tooling/Tooling.h"
+#include "llvm/ADT/DenseMap.h"
#include "llvm/Support/Process.h"
#include "llvm/Support/Signals.h"
#include <algorithm>
@@ -237,8 +238,12 @@
if (FilePath.empty())
return SourceLocation();
- const FileEntry *File = SourceMgr.getFileManager().getFile(FilePath);
- FileID ID = SourceMgr.createFileID(File, SourceLocation(), SrcMgr::C_User);
+ if (Path2FileID.find(FilePath) == Path2FileID.end()) {
+ const FileEntry *File = SourceMgr.getFileManager().getFile(FilePath);
+ Path2FileID[FilePath] =
+ SourceMgr.createFileID(File, SourceLocation(), SrcMgr::C_User);
+ }
+ FileID ID = Path2FileID[FilePath];
return SourceMgr.getLocForStartOfFile(ID).getLocWithOffset(Offset);
}
@@ -248,6 +253,7 @@
<< Message.Message;
}
+ DenseMap<StringRef, FileID> Path2FileID;
FileManager Files;
LangOptions LangOpts; // FIXME: use langopts from each original file
IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D31406.93284.patch
Type: text/x-patch
Size: 1274 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170328/27ee4899/attachment.bin>
More information about the llvm-commits
mailing list