소스 검색

* Do not let FItemsTreshold become negative. Fixes issue #40561

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

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

@@ -364,8 +364,11 @@ procedure TOpenAddressing<OPEN_ADDRESSING_CONSTRAINTS>.UpdateItemsThreshold(ASiz
 begin
   if ASize = $40000000 then
     FItemsThreshold := $40000001
-  else
+  else begin
     FItemsThreshold := Pred(Round(ASize * FMaxLoadFactor));
+    if FItemsThreshold < 0 then
+      FItemsThreshold := 0;
+  end;
 end;
 
 procedure TOpenAddressing<OPEN_ADDRESSING_CONSTRAINTS>.AddItem(var AItem: TItem; const AKey: TKey;