mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-20 11:36:10 +00:00
AK: Inline more of the String and FlyString member functions
Some checks are pending
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
Some checks are pending
CI / Lagom (arm64, Sanitizer_CI, false, macos-15, macOS, Clang) (push) Waiting to run
CI / Lagom (x86_64, Fuzzers_CI, false, ubuntu-24.04, Linux, Clang) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, false, ubuntu-24.04, Linux, GNU) (push) Waiting to run
CI / Lagom (x86_64, Sanitizer_CI, true, ubuntu-24.04, Linux, Clang) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (macos-14, macOS, macOS-universal2) (push) Waiting to run
Package the js repl as a binary artifact / build-and-package (ubuntu-24.04, Linux, Linux-x86_64) (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
This is to help recover some of the performance regression from no longer using DeprecatedFlyString (which was aggressively inlined.)
This commit is contained in:
parent
275985ff3d
commit
7165d69868
Notes:
github-actions[bot]
2025-03-26 02:21:13 +00:00
Author: https://github.com/awesomekling Commit: https://github.com/LadybirdBrowser/ladybird/commit/7165d698683 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4092 Reviewed-by: https://github.com/gmta ✅
4 changed files with 7 additions and 42 deletions
|
@ -79,16 +79,6 @@ FlyString& FlyString::operator=(String const& string)
|
|||
return *this;
|
||||
}
|
||||
|
||||
bool FlyString::is_empty() const
|
||||
{
|
||||
return bytes_as_string_view().is_empty();
|
||||
}
|
||||
|
||||
unsigned FlyString::hash() const
|
||||
{
|
||||
return m_data.hash();
|
||||
}
|
||||
|
||||
u32 FlyString::ascii_case_insensitive_hash() const
|
||||
{
|
||||
return case_insensitive_string_hash(reinterpret_cast<char const*>(bytes().data()), bytes().size());
|
||||
|
@ -110,21 +100,6 @@ Utf8View FlyString::code_points() const
|
|||
return Utf8View { bytes_as_string_view() };
|
||||
}
|
||||
|
||||
ReadonlyBytes FlyString::bytes() const
|
||||
{
|
||||
return bytes_as_string_view().bytes();
|
||||
}
|
||||
|
||||
StringView FlyString::bytes_as_string_view() const
|
||||
{
|
||||
return m_data.bytes();
|
||||
}
|
||||
|
||||
bool FlyString::operator==(String const& other) const
|
||||
{
|
||||
return m_data == other;
|
||||
}
|
||||
|
||||
bool FlyString::operator==(StringView string) const
|
||||
{
|
||||
return bytes_as_string_view() == string;
|
||||
|
|
|
@ -32,19 +32,19 @@ public:
|
|||
FlyString(String const&);
|
||||
FlyString& operator=(String const&);
|
||||
|
||||
[[nodiscard]] bool is_empty() const;
|
||||
[[nodiscard]] unsigned hash() const;
|
||||
[[nodiscard]] bool is_empty() const { return m_data.byte_count() == 0; }
|
||||
[[nodiscard]] unsigned hash() const { return m_data.hash(); }
|
||||
[[nodiscard]] u32 ascii_case_insensitive_hash() const;
|
||||
|
||||
explicit operator String() const;
|
||||
String to_string() const;
|
||||
|
||||
[[nodiscard]] Utf8View code_points() const;
|
||||
[[nodiscard]] ReadonlyBytes bytes() const;
|
||||
[[nodiscard]] StringView bytes_as_string_view() const;
|
||||
[[nodiscard]] ReadonlyBytes bytes() const { return m_data.bytes(); }
|
||||
[[nodiscard]] StringView bytes_as_string_view() const { return m_data.bytes(); }
|
||||
|
||||
[[nodiscard]] ALWAYS_INLINE bool operator==(FlyString const& other) const { return m_data.raw({}) == other.m_data.raw({}); }
|
||||
[[nodiscard]] bool operator==(String const&) const;
|
||||
[[nodiscard]] bool operator==(String const& other) const { return m_data == other; }
|
||||
[[nodiscard]] bool operator==(StringView) const;
|
||||
[[nodiscard]] bool operator==(char const*) const;
|
||||
|
||||
|
|
|
@ -156,16 +156,6 @@ ErrorOr<String> String::repeated(u32 code_point, size_t count)
|
|||
return result;
|
||||
}
|
||||
|
||||
StringView String::bytes_as_string_view() const&
|
||||
{
|
||||
return StringView(bytes());
|
||||
}
|
||||
|
||||
bool String::is_empty() const
|
||||
{
|
||||
return bytes().size() == 0;
|
||||
}
|
||||
|
||||
ErrorOr<String> String::vformatted(StringView fmtstr, TypeErasedFormatParams& params)
|
||||
{
|
||||
StringBuilder builder;
|
||||
|
|
|
@ -138,10 +138,10 @@ public:
|
|||
[[nodiscard]] Utf8View code_points() const&& = delete;
|
||||
|
||||
// Returns true if the String is zero-length.
|
||||
[[nodiscard]] bool is_empty() const;
|
||||
[[nodiscard]] bool is_empty() const { return byte_count() == 0; }
|
||||
|
||||
// Returns a StringView covering the full length of the string. Note that iterating this will go byte-at-a-time, not code-point-at-a-time.
|
||||
[[nodiscard]] StringView bytes_as_string_view() const&;
|
||||
[[nodiscard]] StringView bytes_as_string_view() const& { return StringView(bytes()); }
|
||||
[[nodiscard]] StringView bytes_as_string_view() const&& = delete;
|
||||
|
||||
[[nodiscard]] size_t count(StringView needle) const { return StringUtils::count(bytes_as_string_view(), needle); }
|
||||
|
|
Loading…
Add table
Reference in a new issue