diff options
-rw-r--r-- | AK/StringBuilder.cpp | 2 | ||||
-rw-r--r-- | AK/Tests/TestString.cpp | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/AK/StringBuilder.cpp b/AK/StringBuilder.cpp index 17be5972a9..ffae4e76da 100644 --- a/AK/StringBuilder.cpp +++ b/AK/StringBuilder.cpp @@ -91,6 +91,8 @@ ByteBuffer StringBuilder::to_byte_buffer() const String StringBuilder::to_string() const { + if (is_empty()) + return String::empty(); return String((const char*)m_buffer.data(), m_length); } diff --git a/AK/Tests/TestString.cpp b/AK/Tests/TestString.cpp index bd9a8fbc73..5576bcec90 100644 --- a/AK/Tests/TestString.cpp +++ b/AK/Tests/TestString.cpp @@ -199,4 +199,13 @@ TEST_CASE(split) EXPECT_EQ(parts[2].characters()[3], '\0'); } +TEST_CASE(builder_zero_initial_capacity) +{ + StringBuilder builder(0); + builder.append(""); + auto built = builder.build(); + EXPECT_EQ(built.is_null(), false); + EXPECT_EQ(built.length(), 0u); +} + TEST_MAIN(String) |