[fpc-pascal] Delphi mode syntax error

Jonas Maebe jonas.maebe at elis.ugent.be
Tue Jan 19 14:46:10 CET 2010


On 19 Jan 2010, at 14:39, Roland Turcan wrote:

> <<< 19.01.2010 13:10 - Jonas Maebe "jonas.maebe at elis.ugent.be" >>>
>
> JM> Oops, only now I see he was trying to index a pointer like an  
> array.
> JM> And even in FPC I would very strongly recommend against  
> typecasting a
> JM> dynamic array to a pointer and then performing operations using  
> this
> JM> pointer. Dynamic arrays are opaque structures and trying to  
> directly
> JM> access the underlying data should never be done.
>
> But this ways is already used in LCL/FPC source as well.

I don't know about the LCL, but I guess in the FPC sources the only  
place where this is done is inside the RTL helpers that are used to  
manage the dynamic arrays. These by definition depend on the internal  
layout of the dynamic array and will be updated if something would  
change about dynamic arrays.

I also don't see any advantage to using a pointer instead of a dynamic  
array directly. It will not be faster in any way, since there are no  
uniqueness checks for dynamic arrays. In fact, it will probably be  
slower, since you now have two variables in use: one to hold a  
reference to the dynamic array, and one for the extra pointer.


Jonas



More information about the fpc-pascal mailing list