mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 00:47:45 +00:00
AK: Fix FixedArray zero bytes allocations
This commit is contained in:
parent
f5bc7dbfda
commit
80560d1be3
1 changed files with 14 additions and 6 deletions
|
@ -38,10 +38,12 @@ public:
|
||||||
explicit FixedArray(size_t size)
|
explicit FixedArray(size_t size)
|
||||||
: m_size(size)
|
: m_size(size)
|
||||||
{
|
{
|
||||||
|
if (m_size != 0) {
|
||||||
m_elements = (T*)kmalloc(sizeof(T) * m_size);
|
m_elements = (T*)kmalloc(sizeof(T) * m_size);
|
||||||
for (size_t i = 0; i < m_size; ++i)
|
for (size_t i = 0; i < m_size; ++i)
|
||||||
new (&m_elements[i]) T();
|
new (&m_elements[i]) T();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
~FixedArray()
|
~FixedArray()
|
||||||
{
|
{
|
||||||
clear();
|
clear();
|
||||||
|
@ -50,10 +52,12 @@ public:
|
||||||
FixedArray(const FixedArray& other)
|
FixedArray(const FixedArray& other)
|
||||||
: m_size(other.m_size)
|
: m_size(other.m_size)
|
||||||
{
|
{
|
||||||
|
if (m_size != 0) {
|
||||||
m_elements = (T*)kmalloc(sizeof(T) * m_size);
|
m_elements = (T*)kmalloc(sizeof(T) * m_size);
|
||||||
for (size_t i = 0; i < m_size; ++i)
|
for (size_t i = 0; i < m_size; ++i)
|
||||||
new (&m_elements[i]) T(other[i]);
|
new (&m_elements[i]) T(other[i]);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
FixedArray& operator=(const FixedArray& other)
|
FixedArray& operator=(const FixedArray& other)
|
||||||
{
|
{
|
||||||
|
@ -106,6 +110,10 @@ public:
|
||||||
{
|
{
|
||||||
if (new_size == m_size)
|
if (new_size == m_size)
|
||||||
return;
|
return;
|
||||||
|
if (new_size == 0) {
|
||||||
|
clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
auto* new_elements = (T*)kmalloc(new_size * sizeof(T));
|
auto* new_elements = (T*)kmalloc(new_size * sizeof(T));
|
||||||
for (size_t i = 0; i < min(new_size, m_size); ++i)
|
for (size_t i = 0; i < min(new_size, m_size); ++i)
|
||||||
new (&new_elements[i]) T(move(m_elements[i]));
|
new (&new_elements[i]) T(move(m_elements[i]));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue