From da9b2247f858ed13cd68cf6166246772719b7b56 Mon Sep 17 00:00:00 2001 From: Logan McNaughton <848146+loganmc10@users.noreply.github.com> Date: Sun, 16 Mar 2025 10:10:16 +0100 Subject: [PATCH] remove more mut (#334) --- src/device.rs | 2 +- src/device/cart/rom.rs | 2 +- src/device/memory.rs | 4 ++-- src/device/rdram.rs | 2 +- src/device/rsp_interface.rs | 2 +- src/device/unmapped.rs | 12 ++++++++++-- src/savestates.rs | 5 +++++ 7 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/device.rs b/src/device.rs index 5f751aa..0f06a91 100644 --- a/src/device.rs +++ b/src/device.rs @@ -348,7 +348,7 @@ impl Device { }, }, memory: memory::Memory { - fast_read: [unmapped::read_mem; 0x2000], + fast_read: [unmapped::read_mem_fast; 0x2000], memory_map_read: [unmapped::read_mem; 0x2000], memory_map_write: [unmapped::write_mem; 0x2000], icache: [cache::ICache { diff --git a/src/device/cart/rom.rs b/src/device/cart/rom.rs index 985d73c..9d8300d 100644 --- a/src/device/cart/rom.rs +++ b/src/device/cart/rom.rs @@ -24,7 +24,7 @@ fn read_cart_word(device: &device::Device, address: usize) -> u32 { } pub fn read_mem_fast( - device: &mut device::Device, + device: &device::Device, address: u64, _access_size: device::memory::AccessSize, ) -> u32 { diff --git a/src/device/memory.rs b/src/device/memory.rs index 825dbb9..167c342 100644 --- a/src/device/memory.rs +++ b/src/device/memory.rs @@ -40,8 +40,8 @@ pub enum AccessSize { #[derive(serde::Serialize, serde::Deserialize)] pub struct Memory { - #[serde(skip, default = "savestates::default_memory_read")] - pub fast_read: [fn(&mut device::Device, u64, AccessSize) -> u32; 0x2000], // fast_read is used for lookups that try to detect idle loops + #[serde(skip, default = "savestates::default_memory_read_fast")] + pub fast_read: [fn(&device::Device, u64, AccessSize) -> u32; 0x2000], // fast_read is used for lookups that try to detect idle loops #[serde(skip, default = "savestates::default_memory_read")] pub memory_map_read: [fn(&mut device::Device, u64, AccessSize) -> u32; 0x2000], #[serde(skip, default = "savestates::default_memory_write")] diff --git a/src/device/rdram.rs b/src/device/rdram.rs index 04ef5a4..5d9b0f7 100644 --- a/src/device/rdram.rs +++ b/src/device/rdram.rs @@ -24,7 +24,7 @@ pub struct Rdram { } pub fn read_mem_fast( - device: &mut device::Device, + device: &device::Device, address: u64, _access_size: device::memory::AccessSize, ) -> u32 { diff --git a/src/device/rsp_interface.rs b/src/device/rsp_interface.rs index bcf8376..47780f5 100644 --- a/src/device/rsp_interface.rs +++ b/src/device/rsp_interface.rs @@ -89,7 +89,7 @@ pub struct Rsp { } pub fn read_mem_fast( - device: &mut device::Device, + device: &device::Device, address: u64, _access_size: device::memory::AccessSize, ) -> u32 { diff --git a/src/device/unmapped.rs b/src/device/unmapped.rs index 520648b..3188eab 100644 --- a/src/device/unmapped.rs +++ b/src/device/unmapped.rs @@ -1,7 +1,7 @@ use crate::device; -pub fn read_mem( - _device: &mut device::Device, +pub fn read_mem_fast( + _device: &device::Device, address: u64, _access_size: device::memory::AccessSize, ) -> u32 { @@ -9,4 +9,12 @@ pub fn read_mem( value | (value << 16) } +pub fn read_mem( + device: &mut device::Device, + address: u64, + access_size: device::memory::AccessSize, +) -> u32 { + read_mem_fast(device, address, access_size) +} + pub fn write_mem(_device: &mut device::Device, _address: u64, _value: u32, _mask: u32) {} diff --git a/src/savestates.rs b/src/savestates.rs index 2fd0d72..7fbcf7e 100644 --- a/src/savestates.rs +++ b/src/savestates.rs @@ -216,6 +216,11 @@ where [device::cop0::reserved; N] } +pub fn default_memory_read_fast() +-> [fn(&device::Device, u64, device::memory::AccessSize) -> u32; 0x2000] { + [device::rdram::read_mem_fast; 0x2000] +} + pub fn default_memory_read() -> [fn(&mut device::Device, u64, device::memory::AccessSize) -> u32; 0x2000] { [device::rdram::read_mem; 0x2000]