Enforce value params with sysflag [1] are read-only.

This commit is contained in:
Dave Brown 2019-11-11 13:09:28 +00:00
parent e22bec7fc1
commit 63817939ec
2 changed files with 3 additions and 7 deletions

View file

@ -36,13 +36,9 @@ MODULE OPB; (* RC 6.3.89 / 21.2.94 *) (* object model 17.1.93 *)
node^.obj := obj; node^.typ := obj^.typ;
(* Array and record value parameters with copy disabled are readonly *)
(*
IF (obj.mode = OPT.Var)
& (obj.typ.comp IN {OPT.Array, OPT.DynArr})
& (obj.typ.sysflag # 0) THEN
IF (obj.mode = OPT.Var) & (obj.typ.comp IN {OPT.Array, OPT.DynArr}) & (obj.typ.sysflag # 0) THEN
node.readonly := TRUE;
END;
*)
RETURN node
END NewLeaf;

View file

@ -461,7 +461,7 @@ MODULE Files; (* J. Templ 1.12. 89/12.4.95 Oberon files mapped onto Unix files
r.offset := offset + 1; r.res := 0
END Write;
PROCEDURE WriteBytes* (VAR r: Rider; VAR x: ARRAY OF SYSTEM.BYTE; n: LONGINT);
PROCEDURE WriteBytes* (VAR r: Rider; x: ARRAY [1] OF SYSTEM.BYTE; n: LONGINT);
VAR xpos, min, restInBuf, offset: LONGINT; buf: Buffer;
BEGIN
IF n > LEN(x) THEN IdxTrap END;