summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AK/StringBuilder.cpp2
-rw-r--r--AK/Tests/TestString.cpp9
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)