[fpc-devel] FExpand function

Tomas Hajny XHajT03 at mbox.vol.cz
Sun Mar 5 00:24:11 CET 2006


On 4 Mar 06, at 22:24, Michael Van Canneyt wrote:
> On Sat, 4 Mar 2006, Joao Morais wrote:


Hi,

> > Should this comparison (!) be fixed? Seeing that this code is going to
> > be changed, what about change Pa[I] assignment from a variable to a
> > constant?

Fixed now, thanks a lot.

I replaced DirectorySeparator with the character 
according to your suggestion too, but that didn't 
really change anything, in fact - 
DirectorySeparator is a constant too, so the code 
generated for both versions is equal.


> The comparison can be fixed.
> 
> In fact I think the code can be reduced to a single loop:
> 
> if (DirectorySeparator='\') or (DirectorySeparator='/') then
>   for I:=1 to Length(PA) do
>     if (Pa[I] in ['\','/']) and (PA[I]<>DirectorySeparator) then
>       Pa[I]:=DirectorySeparator;

Preferably not, I guess. The current version 
allows to optimize the unnecessary branch away 
altogether. This version is probably considerably 
slower.

Tomas



More information about the fpc-devel mailing list