summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/unittests/clangd/FileIndexTests.cpp
diff options
context:
space:
mode:
authorHaojian Wu <hokein@google.com>2018-11-14 11:55:45 +0000
committerHaojian Wu <hokein@google.com>2018-11-14 11:55:45 +0000
commitee54a2b501cf1d3e7e722d63c00463103a3b9cc4 (patch)
tree6162ece147b8835cc1f0f2e9e748555836477c2e /clang-tools-extra/unittests/clangd/FileIndexTests.cpp
parentee78ae6b869eccfb9938b18ab204453d2c0de638 (diff)
downloadbcm5719-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.cpp12
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;
OpenPOWER on IntegriCloud