Hi,
hab mal wieder feststellen müssen, dass mein Compiler (D2009) Mist macht.
Hab folgende Function:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| class procedure Tfoo.bar(var stream:byte8;key1:Cardinal;key2:Byte); var i:Integer; key1a:Array[0..3] of Byte; begin PCardinal(@key1a[0])^:=key1; for i:=0 to 3 do stream[i]:=stream[i] XOR (stream[i]+key1a[i]+key2); for i:=4 to 7 do stream[i]:=stream[i] XOR (stream[i]+key1a[i-4]+key2); end; |
und was macht mir der Compiler aus der ersten Schleife von 0 bis 3?
Ein schleife von 4 bis 1!!! (Habs im ASM angeguckt)
Folge: RangeCheck Error!
Warum bitte das?
Wie kann ich das vermeiden?
EDIT: type byte8=array[0..7] of Byte; fehlte