Hi from France...
Is this library still alive ? I hope so but the last open defects are old...
I found a new bug on the TStrStrHashMap.Remove when there is just one item to remove (bucket.count = 1)
The System.Move method erase the removed item instead of reinitialize it to an empty string and this behavior generates stack exception when an insert is done after on the same item.
I suggest the following code but maybe it's not the better one...
for I := 0 to Bucket.Count - 1 do
if Bucket.Entries[I].Key = Key then
begin
Result := Bucket.Entries[I].Value;
If Bucket.Count > 1 then
System.Move(Bucket.Entries[I + 1], Bucket.Entries[I],
(Bucket.Count - I) * SizeOf(TStrStrEntry))
else
begin
bucket.Entries[0].Key := '';
bucket.Entries[0].Value := '' ;
end;
Dec(Bucket.Count);
Exit;
end;