From 7529383861ab8145da6d3187e296a30d7dd19552 Mon Sep 17 00:00:00 2001 From: Chris Spegal Date: Sat, 5 Apr 2025 23:48:15 -0400 Subject: [PATCH] Minor changes. --- src/Cafe/HW/MMU/MMU.cpp | 56 +++++++++---------- src/Cafe/IOSU/fsa/iosu_fsa.cpp | 13 ++++- .../libs/coreinit/coreinit_MemoryMapping.cpp | 2 +- 3 files changed, 39 insertions(+), 32 deletions(-) diff --git a/src/Cafe/HW/MMU/MMU.cpp b/src/Cafe/HW/MMU/MMU.cpp index 3c05c805..8793d8c4 100644 --- a/src/Cafe/HW/MMU/MMU.cpp +++ b/src/Cafe/HW/MMU/MMU.cpp @@ -80,33 +80,6 @@ MMURange* memory_getMMURangeByAddress(MPTR address) return nullptr; } -template<> -void MemStreamWriter::write(const MMURange& v) -{ - writeBool(v.m_isMapped); - write(v.baseAddress); - write((uint8)v.areaId); - write((uint8)v.flags); - write(v.name); - write(v.size); - write(v.initSize); -} - -template <> -void MemStreamReader::read(MMURange& mmuRange) -{ - bool needsMapped = readBool(); - mmuRange.m_isMapped = false; - mmuRange.baseAddress = read(); - mmuRange.areaId = (MMU_MEM_AREA_ID)read(); - mmuRange.flags = (MMURange::MFLAG)read(); - mmuRange.name = read(); - mmuRange.size = read(); - mmuRange.initSize = read(); - if (needsMapped) - mmuRange.mapMem(); -} - MMURange::MMURange(const uint32 baseAddress, const uint32 size, MMU_MEM_AREA_ID areaId, const std::string_view name, MFLAG flags) : baseAddress(baseAddress), size(size), initSize(size), areaId(areaId), name(name), flags(flags) { g_mmuRanges.emplace_back(this); @@ -439,6 +412,33 @@ void memory_createDump() } } +template<> +void MemStreamWriter::write(const MMURange& v) +{ + writeBool(v.m_isMapped); + write(v.baseAddress); + write((uint8)v.areaId); + write((uint8)v.flags); + write(v.name); + write(v.size); + write(v.initSize); +} + +template <> +void MemStreamReader::read(MMURange& v) +{ + bool needsMapped = readBool(); + v.m_isMapped = false; + read(v.baseAddress); + v.areaId = (MMU_MEM_AREA_ID)read(); + v.flags = (MMURange::MFLAG)read(); + read(v.name); + read(v.size); + read(v.initSize); + if (needsMapped) + v.mapMem(); +} + void memory_Serialize(MemStreamWriter& s) { for (auto& itr : g_mmuRanges) @@ -455,7 +455,7 @@ void memory_Deserialize(MemStreamReader& s) { for (auto& itr : g_mmuRanges) { - s.read(*itr); + s.read(*itr); if (itr->isMapped()) { s.readData(memory_base + itr->getBase(), itr->getSize()); diff --git a/src/Cafe/IOSU/fsa/iosu_fsa.cpp b/src/Cafe/IOSU/fsa/iosu_fsa.cpp index b24607a3..138d8d39 100644 --- a/src/Cafe/IOSU/fsa/iosu_fsa.cpp +++ b/src/Cafe/IOSU/fsa/iosu_fsa.cpp @@ -928,7 +928,7 @@ template <> void MemStreamWriter::write(const iosu::fsa::_FSAHandleTable& v) { write(v.m_currentCounter); - for (sint32 i = 0; i < v.m_handleTableSize; i++) + for (sint32 i = 0; i < v.m_handleTable.size(); i++) { write(v.m_handleTable[i].handleCheckValue); writeBool(v.m_handleTable[i].isAllocated); @@ -942,12 +942,19 @@ template <> void MemStreamReader::read(iosu::fsa::_FSAHandleTable& v) { read(v.m_currentCounter); - for (sint32 i = 0; i < v.m_handleTableSize; i++) + for (sint32 i = 0; i < v.m_handleTable.size(); i++) { read(v.m_handleTable[i].handleCheckValue); readBool(v.m_handleTable[i].isAllocated); - if (readBool()) v.m_handleTable[i].fscFile = FSCVirtualFile::Restore(*this); + if (readBool()) + { + v.m_handleTable[i].fscFile = FSCVirtualFile::Restore(*this); + } + else + { + v.m_handleTable[i].fscFile = nullptr; + } } } diff --git a/src/Cafe/OS/libs/coreinit/coreinit_MemoryMapping.cpp b/src/Cafe/OS/libs/coreinit/coreinit_MemoryMapping.cpp index 0be5ce08..cfce570f 100644 --- a/src/Cafe/OS/libs/coreinit/coreinit_MemoryMapping.cpp +++ b/src/Cafe/OS/libs/coreinit/coreinit_MemoryMapping.cpp @@ -173,7 +173,7 @@ namespace coreinit s_allocatedVirtMemory.reserve(s_allocatedVirtMemorySize); for (sint32 i = 0; i < s_allocatedVirtMemorySize; i++) { - s_allocatedVirtMemory.push_back(OSVirtMemoryEntry(s.read(), s.read(), s.read())); + s_allocatedVirtMemory.emplace_back(s.read(), s.read(), s.read()); } }