| 310 | } |
| 311 | |
| 312 | bool handleArraySearchComparison(DebugInterface* cpu, SearchComparison searchComparison, u32 searchAddress, SearchResult* priorResult, QByteArray searchValue) |
| 313 | { |
| 314 | const bool isNotOperator = searchComparison == SearchComparison::NotEquals || searchComparison == SearchComparison::NotChanged; |
| 315 | switch (searchComparison) |
| 316 | { |
| 317 | case SearchComparison::Equals: |
| 318 | case SearchComparison::NotEquals: |
| 319 | { |
| 320 | return compareByteArrayAtAddress(cpu, searchComparison, searchAddress, searchValue); |
| 321 | break; |
| 322 | } |
| 323 | case SearchComparison::Changed: |
| 324 | case SearchComparison::NotChanged: |
| 325 | { |
| 326 | QByteArray priorValue = priorResult->getArrayValue(); |
| 327 | return compareByteArrayAtAddress(cpu, isNotOperator ? SearchComparison::Equals : SearchComparison::NotEquals, searchAddress, priorValue); |
| 328 | break; |
| 329 | } |
| 330 | default: |
| 331 | { |
| 332 | Console.Error("Debugger: Unknown search comparison when doing memory search"); |
| 333 | return false; |
| 334 | } |
| 335 | } |
| 336 | // Default to no match found unless the comparison is a NotEquals |
| 337 | return isNotOperator; |
| 338 | } |
| 339 | |
| 340 | static QByteArray readArrayAtAddress(DebugInterface* cpu, u32 address, u32 length) |
| 341 | { |
no test coverage detected