From 45cb7d1eff9241fea5165fa135e94bc04522e0f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Van=20Canneyt?= Date: Wed, 22 Nov 2023 16:29:33 +0100 Subject: [PATCH] * Make dictionary constructor behave as Delphi does in absence of comparer --- packages/rtl-generics/src/inc/generics.dictionaries.inc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/rtl-generics/src/inc/generics.dictionaries.inc b/packages/rtl-generics/src/inc/generics.dictionaries.inc index b90d7c3052..49bd0f2a69 100644 --- a/packages/rtl-generics/src/inc/generics.dictionaries.inc +++ b/packages/rtl-generics/src/inc/generics.dictionaries.inc @@ -1059,7 +1059,11 @@ constructor TOpenAddressingDH.Create(ACapacity: Siz const AComparer: IExtendedEqualityComparer); begin FMaxLoadFactor := TProbeSequence.DEFAULT_LOAD_FACTOR; - FEqualityComparer := AComparer; + // Delphi creates one if you pass nil... + if aComparer=Nil then + FEqualityComparer := TExtendedEqualityComparer.Default(THashFactory) + else + FEqualityComparer := AComparer; SetCapacity(ACapacity); end;