[fpc-devel] Patch to speed up Uppercase/Lowercase functions
Florian Klaempfl
F.Klaempfl at gmx.de
Fri Jun 10 23:33:38 CEST 2005
Joost van der Sluis wrote:
> Hi all,
>
> I don't know if rtl-optimilisation patches have a large priority,
It depends if someone does it ;)
> but
> nevertheless this patch improves the speed of the sysutils.uppercase and
> lowercase functions.
What about creating a table which does direct mapping? It's a lot faster.
>
>
>
> ------------------------------------------------------------------------
>
> Index: sysstr.inc
> ===================================================================
> --- sysstr.inc (revision 372)
> +++ sysstr.inc (working copy)
> @@ -67,11 +67,8 @@
> var i: integer;
> begin
> result := S;
> -i := Length(S);
> -while i <> 0 do begin
> +for i := Length(S) downto 1 do
> if (result[i] in ['a'..'z']) then result[i] := char(byte(result[i]) - 32);
> - Dec(i);
> - end;
> end;
>
> { LowerCase returns a copy of S where all uppercase characters ( from A to Z )
> @@ -81,11 +78,8 @@
> var i: integer;
> begin
> result := S;
> -i := Length(result);
> -while i <> 0 do begin
> +for i := Length(S) downto 1 do
> if (result[i] in ['A'..'Z']) then result[i] := char(byte(result[i]) + 32);
> - dec(i);
> - end;
> end;
>
> { CompareStr compares S1 and S2, the result is the based on
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> fpc-devel maillist - fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
More information about the fpc-devel
mailing list