Просмотр исходного кода

utlGenerics: don't free objects used as keys in TutlMap<>

master
Martok 11 лет назад
Родитель
Сommit
379f84a36e
1 измененных файлов: 2 добавлений и 1 удалений
  1. +2
    -1
      uutlGenerics.pas

+ 2
- 1
uutlGenerics.pas Просмотреть файл

@@ -1117,7 +1117,8 @@ end;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
procedure TutlCustomMap.THashSet.DestroyItem(const aItem: PListItem; const aFreeItem: Boolean); procedure TutlCustomMap.THashSet.DestroyItem(const aItem: PListItem; const aFreeItem: Boolean);
begin begin
utlFreeOrFinalize(aItem^.data.key, TypeInfo(aItem^.data.key), aFreeItem and OwnsObjects);
// never free objects used as keys, but do finalize strings, interfaces etc.
utlFreeOrFinalize(aItem^.data.key, TypeInfo(aItem^.data.key), false);
utlFreeOrFinalize(aItem^.data.value, TypeInfo(aItem^.data.value), aFreeItem and OwnsObjects); utlFreeOrFinalize(aItem^.data.value, TypeInfo(aItem^.data.value), aFreeItem and OwnsObjects);
inherited DestroyItem(aItem, aFreeItem); inherited DestroyItem(aItem, aFreeItem);
end; end;


Загрузка…
Отмена
Сохранить