Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: 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 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.75 c
15-1349614847
картман
2012-10-07 17:00
2013.03.22
клавиатуры Logitech


3-1278051371
ford
2010-07-02 10:16
2013.03.22
плохой индекс в FireBird


15-1337373003
Юрий
2012-05-19 00:30
2013.03.22
С днем рождения ! 19 мая 2012 суббота


15-1353709407
Kerk
2012-11-24 02:23
2013.03.22
Про Москву


15-1340314077
ZV
2012-06-22 01:27
2013.03.22
Компонент Async32 не работает в С++