On Wed, 22 Aug 2007, Skybuck Flying wrote:

> Hello,
> 
> Does GetMem care about the memory contents of the pointer variable ?

No.

> 
> If not the parameter should be out instead of var to prevent the following
> hint message:
> 
>  GetMem( node, sizeof(Tnode) );
> 
> Y:\Free Pascal\Units\Technical\TnodeList\version 0.08 port to free
> pascal\unit_TnodeList_version_009.pas(1015,3) Hint: Variable "node" does not
> seem to be initialized

It is so for compatibility reasons.

> 
> GetMem could fail if out of memory, Delphi raises an OutOfMemory Exception.
> 
> What does Free Pascal do ?

The same.

> 
> Also I know when an exception is raised from inside a function the return
> value is never assigned to the variable.
> 
> At least not the result variable/return value.
> 
> However I am not so sure what happens to var parameters and out parameters,
> those can probably be changed, and later after they already changed an
> exception could be raised.
> 
> So whatever bad happens GetMem could always make sure the parameter is
> initialized to nil ?!

There is no need; As soon as an exception is raised you know the value
in the pointer is invalid.

Michiael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to