소스 검색

* Make dictionary constructor behave as Delphi does in absence of comparer

Michaël Van Canneyt 1 년 전
부모
커밋
45cb7d1eff
1개의 변경된 파일5개의 추가작업 그리고 1개의 파일을 삭제
  1. 5 1
      packages/rtl-generics/src/inc/generics.dictionaries.inc

+ 5 - 1
packages/rtl-generics/src/inc/generics.dictionaries.inc

@@ -1059,7 +1059,11 @@ constructor TOpenAddressingDH<OPEN_ADDRESSING_CONSTRAINTS>.Create(ACapacity: Siz
   const AComparer: IExtendedEqualityComparer<TKey>);
 begin
   FMaxLoadFactor := TProbeSequence.DEFAULT_LOAD_FACTOR;
-  FEqualityComparer := AComparer;
+  // Delphi creates one if you pass nil...
+  if aComparer=Nil then
+    FEqualityComparer := TExtendedEqualityComparer<TKey>.Default(THashFactory)
+  else
+    FEqualityComparer := AComparer;
   SetCapacity(ACapacity);
 end;