mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 17:37:37 +00:00
AK: Prevent accidental misuse of BumpAllocator
In particular, we implicitly required that the caller initializes the returned instances themselves (solved by making UniformBumpAllocator::allocate call the constructor), and BumpAllocator itself cannot handle classes that are not trivially deconstructible (solved by deleting the method). Co-authored-by: Ali Mohammad Pur <ali.mpfard@gmail.com>
This commit is contained in:
parent
5d865d574a
commit
50698a0db4
2 changed files with 10 additions and 13 deletions
|
@ -333,13 +333,12 @@ public:
|
|||
|
||||
ALWAYS_INLINE void append(T value)
|
||||
{
|
||||
auto new_node = m_allocator.allocate();
|
||||
VERIFY(new_node);
|
||||
auto node_ptr = new (new_node) Node { move(value), nullptr, nullptr };
|
||||
auto node_ptr = m_allocator.allocate(move(value));
|
||||
VERIFY(node_ptr);
|
||||
|
||||
if (!m_first) {
|
||||
m_first = new_node;
|
||||
m_last = new_node;
|
||||
m_first = node_ptr;
|
||||
m_last = node_ptr;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue