mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 20:47:45 +00:00
LibJS: Always prefer freelist over lazy freelist if possible
If we're able to allocate cells from a freelist, we should always prefer that over the lazy freelist, since this may further defer faulting in additional memory for the HeapBlock. Thanks to @gunnarbeutner for pointing this out. :^)
This commit is contained in:
parent
6714cf3631
commit
aa857bcdeb
1 changed files with 5 additions and 4 deletions
|
@ -29,12 +29,13 @@ public:
|
||||||
|
|
||||||
ALWAYS_INLINE Cell* allocate()
|
ALWAYS_INLINE Cell* allocate()
|
||||||
{
|
{
|
||||||
|
if (m_freelist) {
|
||||||
|
VERIFY(is_valid_cell_pointer(m_freelist));
|
||||||
|
return exchange(m_freelist, m_freelist->next);
|
||||||
|
}
|
||||||
if (has_lazy_freelist())
|
if (has_lazy_freelist())
|
||||||
return cell(m_next_lazy_freelist_index++);
|
return cell(m_next_lazy_freelist_index++);
|
||||||
if (!m_freelist)
|
return nullptr;
|
||||||
return nullptr;
|
|
||||||
VERIFY(is_valid_cell_pointer(m_freelist));
|
|
||||||
return exchange(m_freelist, m_freelist->next);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void deallocate(Cell*);
|
void deallocate(Cell*);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue