diff --git a/uutlGenerics.pas b/uutlGenerics.pas index 71ba125..0e8f47b 100644 --- a/uutlGenerics.pas +++ b/uutlGenerics.pas @@ -1117,7 +1117,8 @@ end; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// procedure TutlCustomMap.THashSet.DestroyItem(const aItem: PListItem; const aFreeItem: Boolean); 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); inherited DestroyItem(aItem, aFreeItem); end;