From 379f84a36e9d86a9fb4d42413b9bb382002a491c Mon Sep 17 00:00:00 2001 From: Martok Date: Sun, 26 Apr 2015 20:58:48 +0200 Subject: [PATCH] utlGenerics: don't free objects used as keys in TutlMap<> --- uutlGenerics.pas | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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;