mirror of https://github.com/OpenTTD/OpenTTD.git
In other words, it should only (!) return true if A comes for B. This promise was broken for the situation where two values are identical. It would return true in these cases too. This is of course not possible: if two values are identical, neither come before the other. As such, the sorter was not imposing strict weak ordering relations. libstdc++ handled this scenario just fine, but libc++ crashes badly on this, as it allowed comparing of [begin, end] instead of [begin, end). libc++ considered this not a bug (and by specs, they are correct; just this way of crashing is of course a bit harsh): https://bugs.llvm.org/show_bug.cgi?id=47903
This commit is contained in:
parent
937d60f239
commit
0243ae4654
|
@ -333,7 +333,7 @@ protected:
|
|||
if (r == 0) r = a->info.use_password - b->info.use_password;
|
||||
|
||||
/* Finally sort on the number of clients of the server in reverse order. */
|
||||
return (r != 0) ? r < 0 : !NGameClientSorter(a, b);
|
||||
return (r != 0) ? r < 0 : NGameClientSorter(b, a);
|
||||
}
|
||||
|
||||
/** Sort the server list */
|
||||
|
|
Loading…
Reference in New Issue