diff options
| author | Maxime Coste <mawww@kakoune.org> | 2023-11-17 17:01:51 +1100 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2023-11-17 17:01:51 +1100 |
| commit | 296ab1a1ffb707f4691cdce21172b3b8d0b48eb0 (patch) | |
| tree | 6388c07b53a5cfda953b92c058a819684bcec67f /src/shared_string.hh | |
| parent | b10a935b8ceb18f256bd04843a5442d7c746abdb (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.hh | 7 |
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); } } |
