[Lazarus] Finding memory leaks

Zeljko zeljko at holobit.net
Sun Oct 25 13:57:54 CET 2015



On 10/24/2015 03:10 PM, Aradeonas wrote:
> My question stand but I guess problem is in TObjectList but Im not sure
> so I made a simple demo like this:
>
>     procedure TForm1.Button1Click(Sender: TObject);
>     var
>        i: integer;
>        b: TButton;
>     begin
>        list := TObjectList.Create(True);
>        for i := 0 to 10000 do
>        begin
>          b := TButton.Create(Self);
>          list.Add(b);
>        end;
>     end;
>     procedure TForm1.Button2Click(Sender: TObject);
>     begin
>        list.Clear;
>        list.Free;
>     end;
>
> Form is clean and just have 2 button with their code so I run it and
> memory usage in my Windows10 device is about 3mb and then hit the
> button1 and memory goes up to 25mb and when I want to free and hit
> button2 memory will decrease to 15mb not 3 , just like my main program
> that I use TObjectList and will free its objects with remove
> function but it will increase memory usage while running.
> Did I miss something obvious?

Maybe TObjectlist.Clear does not free objects, in that case you have to 
iterate through TObjectList and use Remove() which will free objects ?

zeljko




More information about the Lazarus mailing list