Browse Source

Kernel: Use NonnullRefPtr<PhysicalPage> in PageDirectory::m_page_tables

We don't care to store null page pointers in the page table map.
Andreas Kling 4 years ago
parent
commit
a154faebb7
2 changed files with 2 additions and 2 deletions
  1. 1 1
      Kernel/Memory/MemoryManager.cpp
  2. 1 1
      Kernel/Memory/PageDirectory.h

+ 1 - 1
Kernel/Memory/MemoryManager.cpp

@@ -556,7 +556,7 @@ PageTableEntry* MemoryManager::ensure_pte(PageDirectory& page_directory, Virtual
         pde.set_global(&page_directory == m_kernel_page_directory.ptr());
         pde.set_global(&page_directory == m_kernel_page_directory.ptr());
         // Use page_directory_table_index and page_directory_index as key
         // Use page_directory_table_index and page_directory_index as key
         // This allows us to release the page table entry when no longer needed
         // This allows us to release the page table entry when no longer needed
-        auto result = page_directory.m_page_tables.set(vaddr.get() & ~(FlatPtr)0x1fffff, move(page_table));
+        auto result = page_directory.m_page_tables.set(vaddr.get() & ~(FlatPtr)0x1fffff, page_table.release_nonnull());
         // If you're hitting this VERIFY on x86_64 chances are a 64-bit pointer was truncated somewhere
         // If you're hitting this VERIFY on x86_64 chances are a 64-bit pointer was truncated somewhere
         VERIFY(result == AK::HashSetResult::InsertedNewEntry);
         VERIFY(result == AK::HashSetResult::InsertedNewEntry);
     }
     }

+ 1 - 1
Kernel/Memory/PageDirectory.h

@@ -60,7 +60,7 @@ private:
 #else
 #else
     RefPtr<PhysicalPage> m_directory_pages[4];
     RefPtr<PhysicalPage> m_directory_pages[4];
 #endif
 #endif
-    HashMap<FlatPtr, RefPtr<PhysicalPage>> m_page_tables;
+    HashMap<FlatPtr, NonnullRefPtr<PhysicalPage>> m_page_tables;
     RecursiveSpinLock m_lock;
     RecursiveSpinLock m_lock;
 };
 };