diff --git a/Userland/Libraries/LibJS/CMakeLists.txt b/Userland/Libraries/LibJS/CMakeLists.txt index ce9e02a252..9e92ef1343 100644 --- a/Userland/Libraries/LibJS/CMakeLists.txt +++ b/Userland/Libraries/LibJS/CMakeLists.txt @@ -129,7 +129,6 @@ set(SOURCES Runtime/MapIterator.cpp Runtime/MapIteratorPrototype.cpp Runtime/MapPrototype.cpp - Runtime/MarkedValueList.cpp Runtime/MathObject.cpp Runtime/ModuleEnvironment.cpp Runtime/ModuleNamespaceObject.cpp diff --git a/Userland/Libraries/LibJS/Forward.h b/Userland/Libraries/LibJS/Forward.h index 560a07db2a..9dc79c9efe 100644 --- a/Userland/Libraries/LibJS/Forward.h +++ b/Userland/Libraries/LibJS/Forward.h @@ -159,7 +159,6 @@ class HandleImpl; class Heap; class HeapBlock; class Interpreter; -class MarkedValueList; class Module; class NativeFunction; class ObjectEnvironment; diff --git a/Userland/Libraries/LibJS/Heap/Heap.cpp b/Userland/Libraries/LibJS/Heap/Heap.cpp index 4b0ed04c04..9d68374fbc 100644 --- a/Userland/Libraries/LibJS/Heap/Heap.cpp +++ b/Userland/Libraries/LibJS/Heap/Heap.cpp @@ -113,13 +113,6 @@ void Heap::gather_roots(HashTable& roots) for (auto& handle : m_handles) roots.set(handle.cell()); - for (auto& list : m_marked_value_lists) { - for (auto& value : list.values()) { - if (value.is_cell()) - roots.set(&value.as_cell()); - } - } - for (auto& vector : m_marked_vectors) vector.gather_roots(roots); @@ -293,18 +286,6 @@ void Heap::did_destroy_handle(Badge, HandleImpl& impl) m_handles.remove(impl); } -void Heap::did_create_marked_value_list(Badge, MarkedValueList& list) -{ - VERIFY(!m_marked_value_lists.contains(list)); - m_marked_value_lists.append(list); -} - -void Heap::did_destroy_marked_value_list(Badge, MarkedValueList& list) -{ - VERIFY(m_marked_value_lists.contains(list)); - m_marked_value_lists.remove(list); -} - void Heap::did_create_marked_vector(Badge, MarkedVectorBase& vector) { VERIFY(!m_marked_vectors.contains(vector)); diff --git a/Userland/Libraries/LibJS/Heap/Heap.h b/Userland/Libraries/LibJS/Heap/Heap.h index 5edf1d341c..470f11a1af 100644 --- a/Userland/Libraries/LibJS/Heap/Heap.h +++ b/Userland/Libraries/LibJS/Heap/Heap.h @@ -20,7 +20,6 @@ #include #include #include -#include #include #include @@ -67,9 +66,6 @@ public: void did_create_handle(Badge, HandleImpl&); void did_destroy_handle(Badge, HandleImpl&); - void did_create_marked_value_list(Badge, MarkedValueList&); - void did_destroy_marked_value_list(Badge, MarkedValueList&); - void did_create_marked_vector(Badge, MarkedVectorBase&); void did_destroy_marked_vector(Badge, MarkedVectorBase&); @@ -112,10 +108,7 @@ private: Vector> m_allocators; HandleImpl::List m_handles; - MarkedVectorBase::List m_marked_vectors; - MarkedValueList::List m_marked_value_lists; - WeakContainer::List m_weak_containers; Vector m_uprooted_cells; diff --git a/Userland/Libraries/LibJS/Runtime/MarkedValueList.cpp b/Userland/Libraries/LibJS/Runtime/MarkedValueList.cpp deleted file mode 100644 index 47ee03a4ce..0000000000 --- a/Userland/Libraries/LibJS/Runtime/MarkedValueList.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2020, Andreas Kling - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#include -#include - -namespace JS { - -MarkedValueList::MarkedValueList(Heap& heap) - : m_heap(&heap) -{ - m_heap->did_create_marked_value_list({}, *this); -} - -MarkedValueList::MarkedValueList(MarkedValueList const& other) - : Vector(other) - , m_heap(other.m_heap) -{ - m_heap->did_create_marked_value_list({}, *this); -} - -MarkedValueList::MarkedValueList(MarkedValueList&& other) - : Vector(move(static_cast&>(other))) - , m_heap(other.m_heap) -{ - m_heap->did_create_marked_value_list({}, *this); -} - -MarkedValueList::~MarkedValueList() -{ - m_heap->did_destroy_marked_value_list({}, *this); -} - -MarkedValueList& MarkedValueList::operator=(JS::MarkedValueList const& other) -{ - Vector::operator=(other); - - if (m_heap != other.m_heap) { - m_heap = other.m_heap; - - // NOTE: IntrusiveList will remove this MarkedValueList from the old heap it was part of. - m_heap->did_create_marked_value_list({}, *this); - } - - return *this; -} - -} diff --git a/Userland/Libraries/LibJS/Runtime/MarkedValueList.h b/Userland/Libraries/LibJS/Runtime/MarkedValueList.h deleted file mode 100644 index dbb5bdd49d..0000000000 --- a/Userland/Libraries/LibJS/Runtime/MarkedValueList.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2020, Andreas Kling - * - * SPDX-License-Identifier: BSD-2-Clause - */ - -#pragma once - -#include -#include -#include -#include -#include - -namespace JS { - -class MarkedValueList : public Vector { -public: - explicit MarkedValueList(Heap&); - MarkedValueList(MarkedValueList const&); - MarkedValueList(MarkedValueList&&); - ~MarkedValueList(); - - Vector& values() { return *this; } - - MarkedValueList& operator=(JS::MarkedValueList const& other); - -private: - Heap* m_heap; - - IntrusiveListNode m_list_node; - -public: - using List = IntrusiveList<&MarkedValueList::m_list_node>; -}; - -}