summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/include/clang/Tooling/Execution.h5
-rw-r--r--clang/lib/Tooling/Execution.cpp11
2 files changed, 3 insertions, 13 deletions
diff --git a/clang/include/clang/Tooling/Execution.h b/clang/include/clang/Tooling/Execution.h
index 71c97f3db13..68aef53cb58 100644
--- a/clang/include/clang/Tooling/Execution.h
+++ b/clang/include/clang/Tooling/Execution.h
@@ -57,7 +57,7 @@ public:
/// set of different results, or a large set of duplicated results.
class InMemoryToolResults : public ToolResults {
public:
- InMemoryToolResults() : StringsPool(Arena) {}
+ InMemoryToolResults() : Strings(Arena) {}
void addResult(StringRef Key, StringRef Value) override;
std::vector<std::pair<llvm::StringRef, llvm::StringRef>>
AllKVResults() override;
@@ -66,8 +66,7 @@ public:
private:
llvm::BumpPtrAllocator Arena;
- llvm::StringSaver StringsPool;
- llvm::DenseSet<llvm::StringRef> Strings;
+ llvm::UniqueStringSaver Strings;
std::vector<std::pair<llvm::StringRef, llvm::StringRef>> KVResults;
};
diff --git a/clang/lib/Tooling/Execution.cpp b/clang/lib/Tooling/Execution.cpp
index 5d6559fb2b4..7ae67747acb 100644
--- a/clang/lib/Tooling/Execution.cpp
+++ b/clang/lib/Tooling/Execution.cpp
@@ -21,16 +21,7 @@ static llvm::cl::opt<std::string>
llvm::cl::init("standalone"));
void InMemoryToolResults::addResult(StringRef Key, StringRef Value) {
- auto Intern = [&](StringRef &V) {
- auto R = Strings.insert(V);
- if (R.second) { // A new entry, create a new string copy.
- *R.first = StringsPool.save(V);
- }
- V = *R.first;
- };
- Intern(Key);
- Intern(Value);
- KVResults.push_back({Key, Value});
+ KVResults.push_back({Strings.save(Key), Strings.save(Value)});
}
std::vector<std::pair<llvm::StringRef, llvm::StringRef>>
OpenPOWER on IntegriCloud