mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-21 23:20:20 +00:00
AK: Add String::operator==(StringView)
Comparing a String to a StringView would instantiate a temporary String just for the comparison. Let's not do that. :^)
This commit is contained in:
parent
b020a5e7ce
commit
cd8278e489
Notes:
sideshowbarker
2024-07-19 12:33:03 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/cd8278e4893
2 changed files with 17 additions and 0 deletions
|
@ -133,6 +133,9 @@ public:
|
|||
bool operator==(const String&) const;
|
||||
bool operator!=(const String& other) const { return !(*this == other); }
|
||||
|
||||
bool operator==(const StringView&) const;
|
||||
bool operator!=(const StringView& other) const { return !(*this == other); }
|
||||
|
||||
bool operator<(const String&) const;
|
||||
bool operator<(const char*) const;
|
||||
bool operator>=(const String& other) const { return !(*this < other); }
|
||||
|
|
|
@ -19,6 +19,20 @@ bool String::operator==(const String& other) const
|
|||
return !memcmp(characters(), other.characters(), length());
|
||||
}
|
||||
|
||||
bool String::operator==(const StringView& other) const
|
||||
{
|
||||
if (!m_impl)
|
||||
return !other.m_characters;
|
||||
|
||||
if (!other.m_characters)
|
||||
return false;
|
||||
|
||||
if (length() != other.length())
|
||||
return false;
|
||||
|
||||
return !memcmp(characters(), other.characters_without_null_termination(), length());
|
||||
}
|
||||
|
||||
bool String::operator<(const String& other) const
|
||||
{
|
||||
if (!m_impl)
|
||||
|
|
Loading…
Reference in a new issue