diff options
Diffstat (limited to '')
| -rw-r--r-- | src/core/memory.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/memory.cpp b/src/core/memory.cpp index 7def00768..2c5588933 100644 --- a/src/core/memory.cpp +++ b/src/core/memory.cpp | |||
| @@ -548,9 +548,9 @@ struct Memory::Impl { | |||
| 548 | // longer exist, and we should just leave the pagetable entry blank. | 548 | // longer exist, and we should just leave the pagetable entry blank. |
| 549 | page_type = Common::PageType::Unmapped; | 549 | page_type = Common::PageType::Unmapped; |
| 550 | } else { | 550 | } else { |
| 551 | page_type = Common::PageType::Memory; | ||
| 552 | current_page_table->pointers[vaddr >> PAGE_BITS] = | 551 | current_page_table->pointers[vaddr >> PAGE_BITS] = |
| 553 | pointer - (vaddr & ~PAGE_MASK); | 552 | pointer - (vaddr & ~PAGE_MASK); |
| 553 | page_type = Common::PageType::Memory; | ||
| 554 | } | 554 | } |
| 555 | break; | 555 | break; |
| 556 | } | 556 | } |
| @@ -591,9 +591,12 @@ struct Memory::Impl { | |||
| 591 | base + page_table.pointers.size()); | 591 | base + page_table.pointers.size()); |
| 592 | 592 | ||
| 593 | if (!target) { | 593 | if (!target) { |
| 594 | ASSERT_MSG(type != Common::PageType::Memory, | ||
| 595 | "Mapping memory page without a pointer @ {:016x}", base * PAGE_SIZE); | ||
| 596 | |||
| 594 | while (base != end) { | 597 | while (base != end) { |
| 595 | page_table.pointers[base] = nullptr; | ||
| 596 | page_table.attributes[base] = type; | 598 | page_table.attributes[base] = type; |
| 599 | page_table.pointers[base] = nullptr; | ||
| 597 | page_table.backing_addr[base] = 0; | 600 | page_table.backing_addr[base] = 0; |
| 598 | 601 | ||
| 599 | base += 1; | 602 | base += 1; |