Главная страница
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.05 c
2-1341357680
Просто Фан
2012-07-04 03:21
2013.03.22
расклейка форм


15-1343939402
Юрий
2012-08-03 00:30
2013.03.22
С днем рождения ! 3 августа 2012 пятница


2-1333737680
SiDimka
2012-04-06 22:41
2013.03.22
Вызов прцедуры из bpl


2-1337494815
Михаил
2012-05-20 10:20
2013.03.22
Игра ханойские башни


15-1338725627
картман
2012-06-03 16:13
2013.03.22
cuda