AK: Change String's default constructor to be constant

This allows creating expressions such as:

    constexpr Array<String, 10> {};
This commit is contained in:
Timothy Flynn 2023-01-21 12:02:49 -05:00 committed by Linus Groh
parent 34574c5ee8
commit 8aca8e82cb
2 changed files with 4 additions and 7 deletions

View file

@ -208,12 +208,6 @@ void String::destroy_string()
m_data->unref();
}
String::String()
{
// This is an empty string, it's always short and zero-length.
m_short_string.byte_count_and_short_string_flag = SHORT_STRING_FLAG;
}
ErrorOr<String> String::from_utf8(StringView view)
{
if (view.length() <= MAX_SHORT_STRING_BYTE_COUNT) {

View file

@ -52,7 +52,10 @@ public:
}
// Creates an empty (zero-length) String.
String();
constexpr String()
: String(ShortString { SHORT_STRING_FLAG, {} })
{
}
// Creates a new String from a sequence of UTF-8 encoded code points.
static ErrorOr<String> from_utf8(StringView);