Compare commits

...

1 Commits

Author SHA1 Message Date
Kuan-Wei Chiu
35c81106c6 Fix invalid comparator in FullscreenUI game list sort
The game list comparator previously used >= when sorting by CRC in
descending order. This violates the requirements of a strict weak
ordering, as defined by the C++ standard, which mandates that the
comparator must be irreflexive: comp(x, x) must always return false.

Using >= causes comp(a, b) and comp(b, a) to both return true when
a == b, which breaks the irreflexivity and can invalidate the
assumptions made by std::sort. This may lead to undefined behavior,
including memory corruption or segmentation faults.

Replace >= with > to ensure the comparator satisfies the strict weak
ordering requirement, restoring correctness and stability in game list
sorting behavior.
2025-06-22 14:44:34 -04:00

View File

@@ -6285,7 +6285,7 @@ void FullscreenUI::PopulateGameListEntryList()
case 4: // CRC
{
if (lhs->crc != rhs->crc)
return reverse ? (lhs->crc >= rhs->crc) : (lhs->crc < rhs->crc);
return reverse ? (lhs->crc > rhs->crc) : (lhs->crc < rhs->crc);
}
break;