1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:17:44 +00:00

LibJS: Use IntrusiveList for keeping track of MarkedValueLists

This commit is contained in:
Andreas Kling 2021-07-21 19:51:19 +02:00
parent 746b310061
commit 3fe1be20b7
3 changed files with 13 additions and 7 deletions

View file

@ -94,8 +94,8 @@ void Heap::gather_roots(HashTable<Cell*>& roots)
for (auto& handle : m_handles)
roots.set(handle.cell());
for (auto* list : m_marked_value_lists) {
for (auto& value : list->values()) {
for (auto& list : m_marked_value_lists) {
for (auto& value : list.values()) {
if (value.is_cell())
roots.set(&value.as_cell());
}
@ -270,14 +270,14 @@ void Heap::did_destroy_handle(Badge<HandleImpl>, HandleImpl& impl)
void Heap::did_create_marked_value_list(Badge<MarkedValueList>, MarkedValueList& list)
{
VERIFY(!m_marked_value_lists.contains(&list));
m_marked_value_lists.set(&list);
VERIFY(!m_marked_value_lists.contains(list));
m_marked_value_lists.append(list);
}
void Heap::did_destroy_marked_value_list(Badge<MarkedValueList>, MarkedValueList& list)
{
VERIFY(m_marked_value_lists.contains(&list));
m_marked_value_lists.remove(&list);
VERIFY(m_marked_value_lists.contains(list));
m_marked_value_lists.remove(list);
}
void Heap::did_create_weak_container(Badge<WeakContainer>, WeakContainer& set)