Fixed difference count bug in snapshot diff viewer

This commit is contained in:
Nav
2023-07-18 22:27:50 +01:00
parent dea3dff5fa
commit 86670d8f1b

View File

@@ -316,13 +316,29 @@ namespace Bloom::Widgets
const auto& dataA = *(this->hexViewerDataA); const auto& dataA = *(this->hexViewerDataA);
const auto& dataB = *(this->hexViewerDataB); const auto& dataB = *(this->hexViewerDataB);
static const auto isAddressExcluded = [this] (Targets::TargetMemoryAddress address) {
for (const auto& excludedRegion : this->excludedRegionsA) {
if (excludedRegion.addressRange.contains(address)) {
return true;
}
}
for (const auto& excludedRegion : this->excludedRegionsB) {
if (excludedRegion.addressRange.contains(address)) {
return true;
}
}
return false;
};
const auto& memoryStartAddress = this->memoryDescriptor.addressRange.startAddress; const auto& memoryStartAddress = this->memoryDescriptor.addressRange.startAddress;
for (Targets::TargetMemoryBuffer::size_type i = 0; i < dataA.size(); ++i) { for (Targets::TargetMemoryBuffer::size_type i = 0; i < dataA.size(); ++i) {
if (dataA[i] != dataB[i]) { const auto address = memoryStartAddress + static_cast<Targets::TargetMemoryAddress>(i);
this->differentialHexViewerSharedState.differences.insert(
memoryStartAddress + static_cast<Targets::TargetMemoryAddress>(i) if (dataA[i] != dataB[i] && !isAddressExcluded(address)) {
); this->differentialHexViewerSharedState.differences.insert(address);
} }
} }