* made Byte/Word/Long/Int64Rec endian safe

+ Int128/OWordRec

git-svn-id: trunk@16279 -
This commit is contained in:
florian 2010-10-31 17:57:54 +00:00
parent d786f8a1b8
commit b4c912bf92

View File

@ -41,21 +41,57 @@ type
LongRec = packed record
case Integer of
{$ifdef FPC_LITTLE_ENDIAN}
0 : (Lo,Hi : Word);
{$else FPC_LITTLE_ENDIAN}
0 : (Hi,Lo : Word);
{$endif FPC_LITTLE_ENDIAN}
1 : (Bytes : Array[0..3] of Byte);
end;
WordRec = packed record
{$ifdef FPC_LITTLE_ENDIAN}
Lo,Hi : Byte;
{$else FPC_LITTLE_ENDIAN}
Hi,Lo : Byte;
{$endif FPC_LITTLE_ENDIAN}
end;
Int64Rec = packed record
case integer of
{$ifdef FPC_LITTLE_ENDIAN}
0 : (Lo,Hi : Cardinal);
{$else FPC_LITTLE_ENDIAN}
0 : (Hi,Lo : Cardinal);
{$endif FPC_LITTLE_ENDIAN}
1 : (Words : Array[0..3] of Word);
2 : (Bytes : Array[0..7] of Byte);
end;
Int128Rec = packed record
case integer of
{$ifdef FPC_LITTLE_ENDIAN}
0 : (Lo,Hi : QWord);
{$else FPC_LITTLE_ENDIAN}
0 : (Hi,Lo : QWord);
{$endif FPC_LITTLE_ENDIAN}
1 : (DWords : Array[0..3] of DWord);
2 : (Words : Array[0..7] of Word);
3 : (Bytes : Array[0..15] of Byte);
end;
OWordRec = packed record
case integer of
{$ifdef FPC_LITTLE_ENDIAN}
0 : (Lo,Hi : QWord);
{$else FPC_LITTLE_ENDIAN}
0 : (Hi,Lo : QWord);
{$endif FPC_LITTLE_ENDIAN}
1 : (DWords : Array[0..3] of DWord);
2 : (Words : Array[0..7] of Word);
3 : (Bytes : Array[0..15] of Byte);
end;
PByteArray = ^TByteArray;
TByteArray = Array[0..32767] of Byte;