summaryrefslogtreecommitdiff
path: root/src/shared_string.hh
diff options
context:
space:
mode:
authorMaxime Coste <mawww@kakoune.org>2023-11-17 17:01:51 +1100
committerMaxime Coste <mawww@kakoune.org>2023-11-17 17:01:51 +1100
commit296ab1a1ffb707f4691cdce21172b3b8d0b48eb0 (patch)
tree6388c07b53a5cfda953b92c058a819684bcec67f /src/shared_string.hh
parentb10a935b8ceb18f256bd04843a5442d7c746abdb (diff)
Improve WordDB performance by precomputing hashes
Avoid multiple computation of string hashes by making it possible to pre-compute and pass hashes to interned strings and hash maps.
Diffstat (limited to 'src/shared_string.hh')
-rw-r--r--src/shared_string.hh7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/shared_string.hh b/src/shared_string.hh
index 8455a31e..17bb72d8 100644
--- a/src/shared_string.hh
+++ b/src/shared_string.hh
@@ -50,6 +50,7 @@ public:
public:
void debug_stats() const;
Ptr intern(StringView str);
+ Ptr intern(StringView str, size_t hash);
void remove(StringView str);
private:
@@ -62,10 +63,8 @@ public:
using StringDataPtr = StringData::Ptr;
using StringRegistry = StringData::Registry;
-inline StringDataPtr intern(StringView str)
-{
- return StringRegistry::instance().intern(str);
-}
+inline StringDataPtr intern(StringView str) { return StringRegistry::instance().intern(str); }
+inline StringDataPtr intern(StringView str, size_t hash) { return StringRegistry::instance().intern(str, hash); }
}