AK: Inline most StringBase member functions

More work on recovering the performance regression from
DeprecatedFlyString removal.

Local measurements on my MBP:
- 2.5% speedup on Octane/zlib.js
- 2% speedup on Octane/typescript.js
This commit is contained in:
Andreas Kling 2025-03-26 07:11:07 +00:00 committed by Andreas Kling
commit 53cac71cec
Notes: github-actions[bot] 2025-03-26 12:05:12 +00:00
5 changed files with 109 additions and 104 deletions

View file

@ -50,7 +50,6 @@ public:
[[nodiscard]] int operator<=>(FlyString const& other) const;
static void did_destroy_fly_string_data(Badge<Detail::StringData>, Detail::StringData const&);
[[nodiscard]] Detail::StringBase data(Badge<String>) const;
// This is primarily interesting to unit tests.
@ -104,6 +103,8 @@ private:
bool is_invalid() const { return m_data.is_invalid(); }
};
void did_destroy_fly_string_data(Badge<Detail::StringData>, Detail::StringData const&);
template<>
class Optional<FlyString> : public OptionalBase<FlyString> {
template<typename U>