diff --git a/Kernel/VM/AnonymousVMObject.cpp b/Kernel/VM/AnonymousVMObject.cpp index 9b479f8e51..01cd64ae51 100644 --- a/Kernel/VM/AnonymousVMObject.cpp +++ b/Kernel/VM/AnonymousVMObject.cpp @@ -117,11 +117,11 @@ AnonymousVMObject::AnonymousVMObject(PhysicalPage& page) } AnonymousVMObject::AnonymousVMObject(NonnullRefPtrVector physical_pages) - : VMObject() + : VMObject(physical_pages.size()) , m_volatile_ranges_cache({ 0, page_count() }) { - for (auto& page : physical_pages) { - m_physical_pages.append(page); + for (size_t i = 0; i < physical_pages.size(); ++i) { + m_physical_pages[i] = physical_pages[i]; } } diff --git a/Kernel/VM/VMObject.cpp b/Kernel/VM/VMObject.cpp index 5908b4a7ce..99cf074b9c 100644 --- a/Kernel/VM/VMObject.cpp +++ b/Kernel/VM/VMObject.cpp @@ -15,14 +15,9 @@ VMObject::VMObject(const VMObject& other) MM.register_vmobject(*this); } -VMObject::VMObject() -{ - MM.register_vmobject(*this); -} - VMObject::VMObject(size_t size) + : m_physical_pages(ceil_div(size, static_cast(PAGE_SIZE))) { - m_physical_pages.resize(ceil_div(size, static_cast(PAGE_SIZE))); MM.register_vmobject(*this); } diff --git a/Kernel/VM/VMObject.h b/Kernel/VM/VMObject.h index 58ae7276c3..4cdd64c9c6 100644 --- a/Kernel/VM/VMObject.h +++ b/Kernel/VM/VMObject.h @@ -6,6 +6,7 @@ #pragma once +#include #include #include #include @@ -61,7 +62,6 @@ public: } protected: - VMObject(); explicit VMObject(size_t); explicit VMObject(const VMObject&); @@ -69,7 +69,7 @@ protected: void for_each_region(Callback); IntrusiveListNode m_list_node; - Vector, 16> m_physical_pages; + FixedArray> m_physical_pages; Lock m_paging_lock { "VMObject" }; mutable SpinLock m_lock;