mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-12-27 21:21:50 +03:00
AK: Move String::~String() and String::destroy_string() to StringBase
This commit is contained in:
parent
54d149bc25
commit
1b09a1851e
Notes:
sideshowbarker
2024-07-17 09:56:35 +09:00
Author: https://github.com/DanShaders Commit: https://github.com/SerenityOS/serenity/commit/1b09a1851e Pull-request: https://github.com/SerenityOS/serenity/pull/21661 Reviewed-by: https://github.com/ADKaster Reviewed-by: https://github.com/alimpfard Reviewed-by: https://github.com/kleinesfilmroellchen Reviewed-by: https://github.com/trflynn89
@ -122,12 +122,6 @@ void StringData::compute_hash() const
|
||||
|
||||
}
|
||||
|
||||
void String::destroy_string()
|
||||
{
|
||||
if (!is_short_string())
|
||||
m_data->unref();
|
||||
}
|
||||
|
||||
String String::from_utf8_without_validation(ReadonlyBytes bytes)
|
||||
{
|
||||
if (bytes.size() <= MAX_SHORT_STRING_BYTE_COUNT) {
|
||||
|
@ -48,12 +48,6 @@ public:
|
||||
|
||||
using StringBase::StringBase;
|
||||
|
||||
constexpr ~String()
|
||||
{
|
||||
if (!is_constant_evaluated())
|
||||
destroy_string();
|
||||
}
|
||||
|
||||
// Creates an empty (zero-length) String.
|
||||
constexpr String()
|
||||
: StringBase(ShortString { SHORT_STRING_FLAG, {} })
|
||||
@ -209,8 +203,6 @@ public:
|
||||
|
||||
private:
|
||||
using ShortString = Detail::ShortString;
|
||||
|
||||
void destroy_string();
|
||||
};
|
||||
|
||||
template<>
|
||||
|
@ -73,4 +73,10 @@ bool StringBase::operator==(StringBase const& other) const
|
||||
return bytes() == other.bytes();
|
||||
}
|
||||
|
||||
void StringBase::destroy_string()
|
||||
{
|
||||
if (!is_short_string())
|
||||
m_data->unref();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -42,6 +42,12 @@ public:
|
||||
StringBase& operator=(StringBase&&);
|
||||
StringBase& operator=(StringBase const&);
|
||||
|
||||
constexpr ~StringBase()
|
||||
{
|
||||
if (!is_constant_evaluated())
|
||||
destroy_string();
|
||||
}
|
||||
|
||||
// NOTE: This is primarily interesting to unit tests.
|
||||
[[nodiscard]] bool is_short_string() const;
|
||||
|
||||
@ -71,6 +77,9 @@ protected:
|
||||
ShortString m_short_string;
|
||||
Detail::StringData const* m_data { nullptr };
|
||||
};
|
||||
|
||||
private:
|
||||
void destroy_string();
|
||||
};
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user