Explorar o código

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

Michaël Van Canneyt hai 3 días
pai
achega
6d4862233b
Modificáronse 1 ficheiros con 4 adicións e 1 borrados
  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;