I am using IList from the excellent Delphi framework Spring4D by Stefan Glienke.
I have a list IList and I refill this list many times during my application is run. So, after two or three hours I have a memory overflow of my list.
This is how I populate my list:
  list := TCollections.CreateList<TVisitor>;
  for i := 0 to dataSet.RecordCount - 1 do begin
        item := TVisitor.Create ();
        item.Surname := dataSet.FieldByName ( 'firstname' ).AsString;
        item.Name := dataSet.FieldByName ( 'secondname' ).AsString;
        item.Patronymic := dataSet.FieldByName ( 'thirdname' ).AsString;
        item.CardNumber := dataSet.FieldByName ( 'cardnumber' ).AsString;
        list.Add ( item );
        dataSet.Next ();
  end;
The Clear() method doesn't free a memory, so each time I fill my list the Windows Task Manager inc memory usage of my application :(
Your list does not free the TVisitor instances.
Create is like this:
TCollections.CreateList<TVisitor>(True);
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With