Главная страница
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.209 c
15-1350631915
AV
2012-10-19 11:31
2013.03.22
MSSQL. Посоветуйте индексы на таблицу


6-1263679694
zSvetik
2010-01-17 01:08
2013.03.22
Открыл, нарезал, передал, склеил, показал видео


15-1340113121
Eu
2012-06-19 17:38
2013.03.22
Как быстро вставить записи в oracle?


15-1342691121
AV
2012-07-19 13:45
2013.03.22
Помните, в перестройку Лысенков некий Телемаркет рекламировал?


2-1330854206
wymkent
2012-03-04 13:43
2013.03.22
HelpDesk