diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2018-07-28 10:51:19 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2018-07-28 10:51:19 +0000 | 
| commit | eb11fae6d08f479c0799db45860a98af528fa6e7 (patch) | |
| tree | 44d492a50c8c1a7eb8e2d17ea3360ec4d066f042 /lib/Support/StringSaver.cpp | |
| parent | b8a2042aa938069e862750553db0e4d82d25822c (diff) | |
Notes
Diffstat (limited to 'lib/Support/StringSaver.cpp')
| -rw-r--r-- | lib/Support/StringSaver.cpp | 7 | 
1 files changed, 7 insertions, 0 deletions
| diff --git a/lib/Support/StringSaver.cpp b/lib/Support/StringSaver.cpp index 335fce3a7bbd..1ded2bdb09de 100644 --- a/lib/Support/StringSaver.cpp +++ b/lib/Support/StringSaver.cpp @@ -17,3 +17,10 @@ StringRef StringSaver::save(StringRef S) {    P[S.size()] = '\0';    return StringRef(P, S.size());  } + +StringRef UniqueStringSaver::save(StringRef S) { +  auto R = Unique.insert(S); +  if (R.second)                 // cache miss, need to actually save the string +    *R.first = Strings.save(S); // safe replacement with equal value +  return *R.first; +} | 
