CodeCache: Don't try to handle page faults when shutting down

This commit is contained in:
Stenzek
2025-12-27 23:00:02 +10:00
parent 21abd24870
commit 739b0734bc

View File

@@ -688,7 +688,7 @@ void CPU::CodeCache::ClearBlocks()
PageFaultHandler::HandlerResult PageFaultHandler::HandlePageFault(void* exception_pc, void* fault_address, PageFaultHandler::HandlerResult PageFaultHandler::HandlePageFault(void* exception_pc, void* fault_address,
bool is_write) bool is_write)
{ {
if (static_cast<const u8*>(fault_address) >= Bus::g_ram && if (Bus::g_ram && static_cast<const u8*>(fault_address) >= Bus::g_ram &&
static_cast<const u8*>(fault_address) < (Bus::g_ram + Bus::RAM_8MB_SIZE)) static_cast<const u8*>(fault_address) < (Bus::g_ram + Bus::RAM_8MB_SIZE))
{ {
// Writing to protected RAM. // Writing to protected RAM.
@@ -1658,7 +1658,7 @@ PageFaultHandler::HandlerResult CPU::CodeCache::HandleFastmemException(void* exc
#ifdef ENABLE_MMAP_FASTMEM #ifdef ENABLE_MMAP_FASTMEM
if (g_settings.cpu_fastmem_mode == CPUFastmemMode::MMap) if (g_settings.cpu_fastmem_mode == CPUFastmemMode::MMap)
{ {
if (static_cast<u8*>(fault_address) < static_cast<u8*>(g_state.fastmem_base) || if (!g_state.fastmem_base || static_cast<u8*>(fault_address) < static_cast<u8*>(g_state.fastmem_base) ||
(static_cast<u8*>(fault_address) - static_cast<u8*>(g_state.fastmem_base)) >= (static_cast<u8*>(fault_address) - static_cast<u8*>(g_state.fastmem_base)) >=
static_cast<ptrdiff_t>(Bus::FASTMEM_ARENA_SIZE)) static_cast<ptrdiff_t>(Bus::FASTMEM_ARENA_SIZE))
{ {