From 8aca8e82cbaefc92f7622e8f793c95aa7d07411f Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Sat, 21 Jan 2023 12:02:49 -0500 Subject: [PATCH] AK: Change String's default constructor to be constant This allows creating expressions such as: constexpr Array {}; --- AK/String.cpp | 6 ------ AK/String.h | 5 ++++- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/AK/String.cpp b/AK/String.cpp index 1924aef1130..6fe7f9af526 100644 --- a/AK/String.cpp +++ b/AK/String.cpp @@ -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::from_utf8(StringView view) { if (view.length() <= MAX_SHORT_STRING_BYTE_COUNT) { diff --git a/AK/String.h b/AK/String.h index c5a22111a04..dc73fe7d55f 100644 --- a/AK/String.h +++ b/AK/String.h @@ -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 from_utf8(StringView);