From: <sch...@us...> - 2007-05-15 06:49:52
|
Revision: 2008 http://svn.sourceforge.net/jcl/?rev=2008&view=rev Author: schuettecarsten Date: 2007-05-14 23:49:51 -0700 (Mon, 14 May 2007) Log Message: ----------- Fixed EIntOverflow-Exception, changes in Rev. 2007 did not really help... Modified Paths: -------------- trunk/jcl/source/common/JclStrHashMap.pas Modified: trunk/jcl/source/common/JclStrHashMap.pas =================================================================== --- trunk/jcl/source/common/JclStrHashMap.pas 2007-05-14 11:59:00 UTC (rev 2007) +++ trunk/jcl/source/common/JclStrHashMap.pas 2007-05-15 06:49:51 UTC (rev 2008) @@ -246,6 +246,11 @@ Result := True; end; +{$IFOPT Q+} +{$DEFINE OVERFLOWCHECKS_ON} +{$Q-} +{$ENDIF} + function StrHash(const S: string): Cardinal; {$IFDEF CLR} begin @@ -271,7 +276,7 @@ I := Length(S); while I > 0 do begin - Cardinal(Result) := Cardinal((Result shl cOneEight) + Ord(P^)); + Result := (Result shl cOneEight) + Ord(P^); Temp := Result and cHighBits; if Temp <> 0 then Result := (Result xor (Temp shr cThreeFourths)) and (not cHighBits); @@ -306,7 +311,7 @@ I := Length(S); while I > 0 do begin - Cardinal(Result) := Cardinal((Result shl cOneEight) + Ord(UpCase(P^))); + Result := (Result shl cOneEight) + Ord(UpCase(P^)); Temp := Result and cHighBits; if Temp <> 0 then Result := (Result xor (Temp shr cThreeFourths)) and (not cHighBits); @@ -349,6 +354,10 @@ end; {$ENDIF CLR} +{$IFDEF OVERFLOWCHECKS_ON} +{$Q+} +{$ENDIF} + //=== { TStringHashMap } ===================================================== constructor TStringHashMap.Create(ATraits: TStringHashMapTraits; AHashSize: Cardinal); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |