File tree Expand file tree Collapse file tree 1 file changed +16
-4
lines changed Expand file tree Collapse file tree 1 file changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -103,14 +103,25 @@ constructor TRandom.Create(Seed: Int64);
103103
104104function TRandom.Next (Bits: Integer): UInt32;
105105begin
106- { $IFOPT Q +}
106+ { $IFOPT R +}
107107{ $DEFINE HasRangeChecks}
108108{ $ENDIF}
109- FSeed := (FSeed * CMultiplier + CIncrement);
110- Result := UInt32(FSeed shr (64 - Bits)); // Use the highest bits; Lower bits have lower period.
109+ { $IFOPT Q+}
110+ { $DEFINE HasOverflowChecks}
111+ { $ENDIF}
112+
113+ { $RANGECHECKS OFF}
114+ { $OVERFLOWCHECKS OFF}
115+
116+ FSeed := Int64(FSeed * CMultiplier + CIncrement);
117+ Result:= UInt32(FSeed shr (64 - Bits)); // Use the highest bits; Lower bits have lower period.
118+
111119{ $IFDEF HasRangeChecks}
112120{ $RANGECHECKS ON}
113121{ $ENDIF}
122+ { $IFDEF HasOverflowChecks}
123+ { $OVERFLOWCHECKS ON}
124+ { $ENDIF}
114125end ;
115126
116127function TRandom.GetSeed : Int64;
@@ -161,7 +172,8 @@ constructor TRandomBase.Create;
161172procedure TRandomBase.NextBytes (var Bytes: array of Byte);
162173var
163174 Head, Tail: Integer;
164- N, Rnd, I: Integer;
175+ N, I: Integer;
176+ Rnd: UInt32;
165177begin
166178 Head := Length(Bytes) div SizeOf(Int32);
167179 Tail := Length(Bytes) mod SizeOf(Int32);
You can’t perform that action at this time.
0 commit comments