mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-07 10:06:03 +00:00
AK: Remove StringBuilder's UseInlineCapacityOnly feature
This feature is unused in Ladybird and will complicate an upcoming patch to hand-off StringBuilder's memory to String.
This commit is contained in:
parent
33207174a9
commit
af220af8bf
Notes:
github-actions[bot]
2024-07-20 07:31:48 +00:00
Author: https://github.com/trflynn89
Commit: af220af8bf
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/724
2 changed files with 12 additions and 35 deletions
|
@ -18,32 +18,6 @@
|
||||||
|
|
||||||
namespace AK {
|
namespace AK {
|
||||||
|
|
||||||
inline ErrorOr<void> StringBuilder::will_append(size_t size)
|
|
||||||
{
|
|
||||||
if (m_use_inline_capacity_only == UseInlineCapacityOnly::Yes) {
|
|
||||||
VERIFY(m_buffer.capacity() == StringBuilder::inline_capacity);
|
|
||||||
Checked<size_t> current_pointer = m_buffer.size();
|
|
||||||
current_pointer += size;
|
|
||||||
VERIFY(!current_pointer.has_overflow());
|
|
||||||
if (current_pointer <= StringBuilder::inline_capacity) {
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
return Error::from_errno(ENOMEM);
|
|
||||||
}
|
|
||||||
|
|
||||||
Checked<size_t> needed_capacity = m_buffer.size();
|
|
||||||
needed_capacity += size;
|
|
||||||
VERIFY(!needed_capacity.has_overflow());
|
|
||||||
// Prefer to completely use the existing capacity first
|
|
||||||
if (needed_capacity <= m_buffer.capacity())
|
|
||||||
return {};
|
|
||||||
Checked<size_t> expanded_capacity = needed_capacity;
|
|
||||||
expanded_capacity *= 2;
|
|
||||||
VERIFY(!expanded_capacity.has_overflow());
|
|
||||||
TRY(m_buffer.try_ensure_capacity(expanded_capacity.value()));
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
|
|
||||||
ErrorOr<StringBuilder> StringBuilder::create(size_t initial_capacity)
|
ErrorOr<StringBuilder> StringBuilder::create(size_t initial_capacity)
|
||||||
{
|
{
|
||||||
StringBuilder builder;
|
StringBuilder builder;
|
||||||
|
@ -56,9 +30,19 @@ StringBuilder::StringBuilder(size_t initial_capacity)
|
||||||
m_buffer.ensure_capacity(initial_capacity);
|
m_buffer.ensure_capacity(initial_capacity);
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder::StringBuilder(UseInlineCapacityOnly use_inline_capacity_only)
|
inline ErrorOr<void> StringBuilder::will_append(size_t size)
|
||||||
: m_use_inline_capacity_only(use_inline_capacity_only)
|
|
||||||
{
|
{
|
||||||
|
Checked<size_t> needed_capacity = m_buffer.size();
|
||||||
|
needed_capacity += size;
|
||||||
|
VERIFY(!needed_capacity.has_overflow());
|
||||||
|
// Prefer to completely use the existing capacity first
|
||||||
|
if (needed_capacity <= m_buffer.capacity())
|
||||||
|
return {};
|
||||||
|
Checked<size_t> expanded_capacity = needed_capacity;
|
||||||
|
expanded_capacity *= 2;
|
||||||
|
VERIFY(!expanded_capacity.has_overflow());
|
||||||
|
TRY(m_buffer.try_ensure_capacity(expanded_capacity.value()));
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t StringBuilder::length() const
|
size_t StringBuilder::length() const
|
||||||
|
|
|
@ -23,12 +23,6 @@ public:
|
||||||
static ErrorOr<StringBuilder> create(size_t initial_capacity = inline_capacity);
|
static ErrorOr<StringBuilder> create(size_t initial_capacity = inline_capacity);
|
||||||
|
|
||||||
explicit StringBuilder(size_t initial_capacity = inline_capacity);
|
explicit StringBuilder(size_t initial_capacity = inline_capacity);
|
||||||
|
|
||||||
enum class UseInlineCapacityOnly {
|
|
||||||
Yes,
|
|
||||||
No,
|
|
||||||
};
|
|
||||||
explicit StringBuilder(UseInlineCapacityOnly use_inline_capacity_only);
|
|
||||||
~StringBuilder() = default;
|
~StringBuilder() = default;
|
||||||
|
|
||||||
ErrorOr<void> try_append(StringView);
|
ErrorOr<void> try_append(StringView);
|
||||||
|
@ -106,7 +100,6 @@ private:
|
||||||
u8* data();
|
u8* data();
|
||||||
u8 const* data() const;
|
u8 const* data() const;
|
||||||
|
|
||||||
UseInlineCapacityOnly m_use_inline_capacity_only { UseInlineCapacityOnly::No };
|
|
||||||
Detail::ByteBuffer<inline_capacity> m_buffer;
|
Detail::ByteBuffer<inline_capacity> m_buffer;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue