mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 00:50:22 +00:00
Revert "AK: Fix accidentally-quadratic behavior in StringBuilder"
This reverts commit 2d011961c9
.
This commit is contained in:
parent
05d49cc0cb
commit
dfd988707c
Notes:
sideshowbarker
2024-07-18 17:09:00 +09:00
Author: https://github.com/BenWiederhake Commit: https://github.com/SerenityOS/serenity/commit/dfd988707c0 Pull-request: https://github.com/SerenityOS/serenity/pull/7604 Reviewed-by: https://github.com/gunnarbeutner ✅
2 changed files with 4 additions and 6 deletions
|
@ -187,8 +187,6 @@ public:
|
|||
operator Bytes() { return bytes(); }
|
||||
operator ReadonlyBytes() const { return bytes(); }
|
||||
|
||||
ALWAYS_INLINE size_t capacity() const { return is_inline() ? inline_capacity : m_outline_capacity; }
|
||||
|
||||
private:
|
||||
ByteBuffer(size_t size)
|
||||
{
|
||||
|
@ -238,6 +236,7 @@ private:
|
|||
}
|
||||
|
||||
ALWAYS_INLINE bool is_inline() const { return m_size <= inline_capacity; }
|
||||
ALWAYS_INLINE size_t capacity() const { return is_inline() ? inline_capacity : m_outline_capacity; }
|
||||
|
||||
size_t m_size { 0 };
|
||||
union {
|
||||
|
|
|
@ -21,11 +21,10 @@ inline void StringBuilder::will_append(size_t size)
|
|||
Checked<size_t> needed_capacity = m_length;
|
||||
needed_capacity += size;
|
||||
VERIFY(!needed_capacity.has_overflow());
|
||||
if (needed_capacity <= m_buffer.capacity())
|
||||
return;
|
||||
|
||||
Checked<size_t> expanded_capacity = needed_capacity;
|
||||
expanded_capacity *= 2;
|
||||
// Prefer to completely use the inline buffer first
|
||||
if (needed_capacity > inline_capacity)
|
||||
expanded_capacity *= 2;
|
||||
VERIFY(!expanded_capacity.has_overflow());
|
||||
m_buffer.grow(expanded_capacity.value());
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue