[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