ladybird/Libraries/LibJS/Bytecode/BasicBlock.cpp
Andreas Kling f37063e2a1 LibJS: Stop worrying about Instruction destructors
By adding static_asserts to prove that all of our generated instruction
classes are trivially destructible, we can confidently remove the
destructor walk in BasicBlock and save ourselves some unnecessary work.
2025-11-21 09:46:03 +01:00

32 lines
672 B
C++

/*
* Copyright (c) 2021, Andreas Kling <andreas@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <AK/String.h>
#include <LibJS/Bytecode/BasicBlock.h>
#include <LibJS/Bytecode/Op.h>
namespace JS::Bytecode {
NonnullOwnPtr<BasicBlock> BasicBlock::create(u32 index, String name)
{
return adopt_own(*new BasicBlock(index, move(name)));
}
BasicBlock::BasicBlock(u32 index, String name)
: m_index(index)
, m_name(move(name))
{
}
BasicBlock::~BasicBlock() = default;
void BasicBlock::grow(size_t additional_size)
{
m_buffer.grow_capacity(m_buffer.size() + additional_size);
m_buffer.resize(m_buffer.size() + additional_size);
}
}