Вниз
Скачать: CL | DM;

добавление/удаление в/из TList   Найти похожие ветки 

 
LDV   (2012-02-15 14:47) [0]

Нужен ли Dispose перед освобождением списка и правильно ли я сохраняю указаетли в список?


function Tform_YMLFields.CanExecuteService: Boolean;
var
 FoundDuplicateName: Boolean;
 CountryOfOriginYMLField, ManufacturerWarrantyYMLField, AdultYMLField: PArray;
 I: Integer;
 ListOfDuplicateFields: TList;
begin
 ListOfDuplicateFields := TList.Create;
 try
   CountryOfOriginYMLField :=
     CheckingCountryOfOriginYMLField(FoundDuplicateName);
   if FoundDuplicateName then
   begin
     {  }
     Assert(CountryOfOriginYMLField <> nil);
     {  }
     ListOfDuplicateFields.Add(CountryOfOriginYMLField); // <- ???
   end;
   ManufacturerWarrantyYMLField :=
     CheckingManufacturerWarrantyYMLField(FoundDuplicateName);
   if FoundDuplicateName then
   begin
     {  }
     Assert(ManufacturerWarrantyYMLField <> nil);
     {  }
     ListOfDuplicateFields.Add(ManufacturerWarrantyYMLField); // <- ???
   end;
   AdultYMLField := CheckingAdultYMLField(FoundDuplicateName);
   if FoundDuplicateName then
   begin
     {  }
     Assert(AdultYMLField <> nil);
     {  }
     ListOfDuplicateFields.Add(AdultYMLField); // <- ???
   end;
 finally
   for I := 0 to ListOfDuplicateFields.Count do
     Dispose(PArray(ListOfDuplicateFields[I])); // <- ???
   ListOfDuplicateFields.Free;
 end;
 Result := True;
end;


 
begin...end ©   (2012-02-15 18:19) [1]

> Нужен ли Dispose перед освобождением списка

Неизвестно. Какие указатели возвращают функции CheckXXXField? Если это ссылки на области памяти, динамически выделенные (процедурой New) внутри этих функций, значит, память освобождать нужно. Но в таком цикле:

for I := 0 to ListOfDuplicateFields.Count - 1 do

Если же эти функции возвращают указатели на какие-то уже имеющиеся статические структуры, значит, освобождать не надо (потому что Вы ничего динамически и не выделяли).

> правильно ли я сохраняю указаетли в список?

Да.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.048 c
2-1336127281
__QWERTY
2012-05-04 14:28
2013.03.22
как правильно очистить TList ы, чтобы не было утечек памяти


15-1351264428
AV
2012-10-26 19:13
2013.03.22
delphi7 под win7 - сервисы стандартным TService нормальные?


2-1329889858
теркин
2012-02-22 09:50
2013.03.22
Как отчистить StringGrid от записей


15-1343292116
Petr V. Abramov
2012-07-26 12:41
2013.03.22
В этом году ж, оказывается, круглая дата!


2-1337107123
Валерий
2012-05-15 22:38
2013.03.22
Экспорт отчетов Fast Report в Open Office из Delphi




   Наверх