diff options
| author | Haojian Wu <hokein@google.com> | 2018-11-14 11:55:45 +0000 |
|---|---|---|
| committer | Haojian Wu <hokein@google.com> | 2018-11-14 11:55:45 +0000 |
| commit | ee54a2b501cf1d3e7e722d63c00463103a3b9cc4 (patch) | |
| tree | 6162ece147b8835cc1f0f2e9e748555836477c2e /clang-tools-extra/unittests/clangd/FileIndexTests.cpp | |
| parent | ee78ae6b869eccfb9938b18ab204453d2c0de638 (diff) | |
| download | bcm5719-llvm-ee54a2b501cf1d3e7e722d63c00463103a3b9cc4.tar.gz bcm5719-llvm-ee54a2b501cf1d3e7e722d63c00463103a3b9cc4.zip | |
[clangd] Replace StringRef in SymbolLocation with a char pointer.
Summary:
This would save us 8 bytes per ref, and buy us ~40MB in total
for llvm index (from ~300MB to ~260 MB).
The char pointer must be null-terminated, and llvm::StringSaver
guarantees it.
Reviewers: sammccall
Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits
Differential Revision: https://reviews.llvm.org/D53427
llvm-svn: 346852
Diffstat (limited to 'clang-tools-extra/unittests/clangd/FileIndexTests.cpp')
| -rw-r--r-- | clang-tools-extra/unittests/clangd/FileIndexTests.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/clang-tools-extra/unittests/clangd/FileIndexTests.cpp b/clang-tools-extra/unittests/clangd/FileIndexTests.cpp index a93b691bcbf..693b5cdaa88 100644 --- a/clang-tools-extra/unittests/clangd/FileIndexTests.cpp +++ b/clang-tools-extra/unittests/clangd/FileIndexTests.cpp @@ -31,6 +31,7 @@ using testing::ElementsAre; using testing::IsEmpty; using testing::Pair; using testing::UnorderedElementsAre; +using namespace llvm; MATCHER_P(RefRange, Range, "") { return std::make_tuple(arg.Location.Start.line(), arg.Location.Start.column(), @@ -38,12 +39,13 @@ MATCHER_P(RefRange, Range, "") { std::make_tuple(Range.start.line, Range.start.character, Range.end.line, Range.end.character); } -MATCHER_P(FileURI, F, "") { return arg.Location.FileURI == F; } -MATCHER_P(DeclURI, U, "") { return arg.CanonicalDeclaration.FileURI == U; } -MATCHER_P(DefURI, U, "") { return arg.Definition.FileURI == U; } +MATCHER_P(FileURI, F, "") { return StringRef(arg.Location.FileURI) == F; } +MATCHER_P(DeclURI, U, "") { + return StringRef(arg.CanonicalDeclaration.FileURI) == U; +} +MATCHER_P(DefURI, U, "") { return StringRef(arg.Definition.FileURI) == U; } MATCHER_P(QName, N, "") { return (arg.Scope + arg.Name).str() == N; } -using namespace llvm; namespace clang { namespace clangd { namespace { @@ -66,7 +68,7 @@ std::unique_ptr<SymbolSlab> numSlab(int Begin, int End) { return llvm::make_unique<SymbolSlab>(std::move(Slab).build()); } -std::unique_ptr<RefSlab> refSlab(const SymbolID &ID, StringRef Path) { +std::unique_ptr<RefSlab> refSlab(const SymbolID &ID, const char *Path) { RefSlab::Builder Slab; Ref R; R.Location.FileURI = Path; |

