[fpc-pascal] sqldb create/free lifetime of object

noreply at z505.com noreply at z505.com
Wed Apr 12 14:32:12 CEST 2017

On 2017-04-12 05:03, LacaK wrote:
> Yes, example should be adjusted. Please report bug to not forget.
> Thanks
> -Laco.

It is not a bug, I just wanted to clarify the magic going on behind the 
scenes - which, is "ownership".

That's all I needed to know.

The key to seeing this trick/magic is in the Create function where you 
pass in the C (connection) as the owner.

But on my cell phone I didn't really see this, and, it's not always 
obvious.. hence my gripe.

In a way, this is a form of garbage collection or RAII sort of. And 
reduces the obnoxious free's required in non garbage collected 
programming languages... So it's a nice feature/trick to have ownership. 
But at the same time you can think there is a memory leak since there is 
no create/free pair easily visible...

So you train your eyes to look for ownership.

And similarly, delphi gui widgets you throw onto a form, don't need to 
be freed yourself, even though the program created them - so in a way 
delphi TForm's gui widgets are also garbage collected, sort of. Again a 
nice feature/trick to avoid all the obnoxious free calls that bloat up 
the source code with line noise.

More information about the fpc-pascal mailing list