[fpc-pascal] Usage of TInterfacedObject. Automatic release?

Luiz Americo Pereira Camara pascalive at bol.com.br
Sat May 26 22:34:18 CEST 2007


Cesar Romero wrote:
> Luiz Americo,
>> Anyway, calling manually _Release avoid the leak and i will stay with 
>> it for now (I hope did not break anything).
>
> It can work for that case, but I think that is not a good ideia.
>
> If you are using a TInterfacedObject descendant, it will call the 
> _Release when out of context, so in that especific case seems to never 
> go out of context, and then you _realease call works, but in other 
> place it can go out of context before, and the you will have others AV.
>

I just  realized that the current design is relatively  safe. If the 
interface goes out of context before the call to _Release, the 
referenced object will be set to nil. This will prevent a second call to 
_Release. Is not the ideal but i'll stay with it for now.

Thanks for Cesar and Joao for all that info.

Luiz



More information about the fpc-pascal mailing list