fixed overflow in LRealToByteArr; -- noch

This commit is contained in:
norayr 2016-11-29 16:14:15 +04:00
parent 047d8b94e7
commit 247852e0b7

View file

@ -12,34 +12,30 @@ TYPE pchar = POINTER TO ARRAY 1 OF CHAR;
PROCEDURE LongToByteArr* ( l : LONGINT; VAR bar : bytearray); (* noch *)
VAR b : SYSTEM.BYTE;
p : pbytearray;
adr : SYSTEM.ADDRESS;
i : LONGINT;
BEGIN
p := SYSTEM.VAL(pbytearray, SYSTEM.ADR(l));
FOR i := 0 TO SIZE(LONGINT) -1 DO
b := p^[i]; bar[i] := b;
END
END LongToByteArr;
PROCEDURE LRealToByteArr* ( l : LONGREAL; VAR lar : longrealarray); (* noch *)
VAR b : SYSTEM.BYTE;
(*adr: SYSTEM.ADDRESS;*)
p : plongrealarray;
i : LONGINT;
BEGIN
p := SYSTEM.VAL(plongrealarray, SYSTEM.ADR(l));
FOR i := 0 TO SIZE(LONGREAL) -1 DO
b := p^[i];
lar[i] := b;
END
(*
adr := SYSTEM.ADR(l);
i := 0;
REPEAT
SYSTEM.GET(adr + i, b);
lar[i] := b;
INC(i)
UNTIL i = SIZE(LONGREAL);*)
UNTIL i = SIZE(LONGINT)
END LongToByteArr;
PROCEDURE LRealToByteArr* ( l : LONGREAL; VAR lar : longrealarray); (* noch *)
VAR b : SYSTEM.BYTE;
adr: SYSTEM.ADDRESS;
i : LONGINT;
BEGIN
adr := SYSTEM.ADR(l);
i := 0;
REPEAT
SYSTEM.GET(adr + i, b);
lar[i] := b;
INC(i)
UNTIL i = SIZE(LONGREAL);
END LRealToByteArr;