mirror of
https://github.com/encounter/aurora.git
synced 2025-07-05 12:46:00 +00:00
Fix corrupted memory cards
This commit is contained in:
parent
6401b0baea
commit
d65bef16ed
@ -23,7 +23,8 @@ void BlockAllocationTable::updateChecksum() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool BlockAllocationTable::valid() const {
|
bool BlockAllocationTable::valid() const {
|
||||||
uint16_t ckSum, ckSumInv;
|
uint16_t ckSum = 0;
|
||||||
|
uint16_t ckSumInv = 0;
|
||||||
const_cast<BlockAllocationTable&>(*this).swapEndian();
|
const_cast<BlockAllocationTable&>(*this).swapEndian();
|
||||||
calculateChecksumBE(reinterpret_cast<const uint16_t*>(raw.data() + 4), 0xFFE, &ckSum, &ckSumInv);
|
calculateChecksumBE(reinterpret_cast<const uint16_t*>(raw.data() + 4), 0xFFE, &ckSum, &ckSumInv);
|
||||||
bool res = (ckSum == m_checksum && ckSumInv == m_checksumInv);
|
bool res = (ckSum == m_checksum && ckSumInv == m_checksumInv);
|
||||||
@ -32,7 +33,12 @@ bool BlockAllocationTable::valid() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
BlockAllocationTable::BlockAllocationTable(uint32_t blockCount)
|
BlockAllocationTable::BlockAllocationTable(uint32_t blockCount)
|
||||||
: m_freeBlocks{uint16_t(blockCount - FSTBlocks)}, m_lastAllocated{4} {
|
: m_checksum{0}
|
||||||
|
, m_checksumInv{0}
|
||||||
|
, m_updateCounter{0}
|
||||||
|
, m_freeBlocks{uint16_t(blockCount - FSTBlocks)}
|
||||||
|
, m_lastAllocated{4}
|
||||||
|
, m_map{{0}} {
|
||||||
updateChecksum();
|
updateChecksum();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user