[fpc-devel] Question on constref

Michael Van Canneyt michael at freepascal.org
Thu Feb 2 10:22:27 CET 2023



On Thu, 2 Feb 2023, Ondrej Pokorny via fpc-devel wrote:

> On 02.02.2023 10:15, Michael Van Canneyt via fpc-devel wrote:
>> On Thu, 2 Feb 2023, Ondrej Pokorny via fpc-devel wrote:
>>> I myself cannot think of any real use case of constref other than hacks 
>>> like the FreeAndNil in recent Delphi versions:
>>> 
>>> procedure FreeAndNil(const [ref] Obj: TObject);
>>> 
>>> that needs the ref because it changes it to nil (so is not really a const 
>>> - it used to be an untyped var). As a result FreeAndNil allows you to 
>>> happily pass read-only properties to it that are then nilled.
>> 
>> Which is a clear violation of the concept of Const... :/
>
> Exactly.

Probably an ill-advised "fix" to the problem that FreeAndNil accepted an untyped var
and you could basically pass anything.

Michael.


More information about the fpc-devel mailing list