Browse Source

RandomHash: bug fix for TRandomHashFast (working now)

Herman Schoenfeld 7 years ago
parent
commit
2f4f1f918d
1 changed files with 2 additions and 1 deletions
  1. 2 1
      src/core/URandomHash.pas

+ 2 - 1
src/core/URandomHash.pas

@@ -715,7 +715,7 @@ begin
 
   // Select random bytes from input using XorShift32 RNG
   for i := AWriteStart to LWriteEnd do
-    ABuffer[i] := ABuffer[AReadStart + TXorShift32.Next(LState) MOD ALength];
+    ABuffer[i] := ABuffer[AReadStart + (TXorShift32.Next(LState) MOD ALength)];
 end;
 
 procedure TRandomHashFast.MemTransform2(const ABuffer: TBytes; AReadStart, AWriteStart, ALength : Integer);
@@ -883,6 +883,7 @@ begin
       7: MemTransform8(LOutput, 0, LReadEnd+1, LCopyLen);
     end;
     Inc(LReadEnd, LCopyLen);
+    Inc(LCopyLen, LCopyLen);
   end;
   Result := LOutput;
 end;