diff --git a/AK/StringBuilder.cpp b/AK/StringBuilder.cpp index fda01d6e79..0a363a5355 100644 --- a/AK/StringBuilder.cpp +++ b/AK/StringBuilder.cpp @@ -21,10 +21,11 @@ inline void StringBuilder::will_append(size_t size) Checked needed_capacity = m_length; needed_capacity += size; VERIFY(!needed_capacity.has_overflow()); + // Prefer to completely use the existing capacity first + if (needed_capacity <= m_buffer.capacity()) + return; Checked expanded_capacity = needed_capacity; - // Prefer to completely use the inline buffer first - if (needed_capacity > inline_capacity) - expanded_capacity *= 2; + expanded_capacity *= 2; VERIFY(!expanded_capacity.has_overflow()); m_buffer.ensure_capacity(expanded_capacity.value()); }