memory: Set page-table pointers before setting attribute = Memory
This commit is contained in:
		@@ -548,9 +548,9 @@ struct Memory::Impl {
 | 
			
		||||
                        // longer exist, and we should just leave the pagetable entry blank.
 | 
			
		||||
                        page_type = Common::PageType::Unmapped;
 | 
			
		||||
                    } else {
 | 
			
		||||
                        page_type = Common::PageType::Memory;
 | 
			
		||||
                        current_page_table->pointers[vaddr >> PAGE_BITS] =
 | 
			
		||||
                            pointer - (vaddr & ~PAGE_MASK);
 | 
			
		||||
                        page_type = Common::PageType::Memory;
 | 
			
		||||
                    }
 | 
			
		||||
                    break;
 | 
			
		||||
                }
 | 
			
		||||
@@ -591,9 +591,12 @@ struct Memory::Impl {
 | 
			
		||||
                   base + page_table.pointers.size());
 | 
			
		||||
 | 
			
		||||
        if (!target) {
 | 
			
		||||
            ASSERT_MSG(type != Common::PageType::Memory,
 | 
			
		||||
                       "Mapping memory page without a pointer @ {:016x}", base * PAGE_SIZE);
 | 
			
		||||
 | 
			
		||||
            while (base != end) {
 | 
			
		||||
                page_table.pointers[base] = nullptr;
 | 
			
		||||
                page_table.attributes[base] = type;
 | 
			
		||||
                page_table.pointers[base] = nullptr;
 | 
			
		||||
                page_table.backing_addr[base] = 0;
 | 
			
		||||
 | 
			
		||||
                base += 1;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user