[fpc-devel] New sorting routines
Mattias Gaertner
nc-gaertnma at netcologne.de
Mon Feb 4 15:54:25 CET 2019
On Mon, 4 Feb 2019 14:26:55 +0200
Nikolay Nikolov <nickysn at gmail.com> wrote:
> On 2/3/19 11:22 PM, C Western wrote:
> > I suspect the new sorting routines need some work - lazarus
> > compiled with the latest trunk hangs on start up, and it looks like
> > an infinite loop in sorting. Stack trace below.
>
> Even though the sort routine did slightly change, I believe this
> exposes a bug in lazarus. The CompareBinary routine in
> syneditmarkuphighall.pp returns -1 when the strings are equal, while
> it should return 0 in this case. This is like having two elements in
> the array, for which (a<b) and (b<a) are both true at the same time.
> The Compare function, passed to the sort algorithms must satisfy the
> mathematical properties of comparisons, otherwise the result is
> undefined (whether it should results in a hang (like in this case),
> or in a bad sort (like in the previous variation of the algorithm) is
> a separate discussion).
>
> The attached patch fixes this.
Thanks. Applied.
Mattias
More information about the fpc-devel
mailing list