adapted to new semantics of the EHEAP error: no longer fatal
This commit is contained in:
parent
b190c55526
commit
b2275303a2
4 changed files with 7 additions and 5 deletions
|
@ -357,9 +357,9 @@ If it is smaller, then the heap shrinks.
|
|||
HP may never point below its original value.
|
||||
All words between the current HP and the original HP
|
||||
are allocated to the heap.
|
||||
The heap may not grow into a part of memory that is already allocated
|
||||
for the stack.
|
||||
The heap may not grow into a part of memory that is already allocated.
|
||||
When this is attempted, the STR instruction will cause a trap to occur.
|
||||
In this case, HP retains its old value.
|
||||
.P
|
||||
The only way to address the heap is indirectly.
|
||||
Whenever an object is allocated by increasing HP,
|
||||
|
|
|
@ -205,7 +205,8 @@ begin if (a<sp) or (a mod wsize<>0) then trap(ESTACK); lb:=a end;
|
|||
|
||||
procedure newhp(a:adr);
|
||||
begin if (a>sp) or (a>maxdata+1) or (a mod wsize<>0)
|
||||
then trap(EHEAP); hp:=a
|
||||
then trap(EHEAP)
|
||||
else hp:=a
|
||||
end;
|
||||
|
||||
function argc(a:double):sword;
|
||||
|
|
|
@ -245,7 +245,8 @@ begin if (a<sp) or (a mod wsize<>0) then trap(ESTACK); lb:=a end;
|
|||
|
||||
procedure newhp(a:adr);
|
||||
begin if (a>sp) or (a>maxdata+1) or (a mod wsize<>0)
|
||||
then trap(EHEAP); hp:=a
|
||||
then trap(EHEAP)
|
||||
else hp:=a
|
||||
end;
|
||||
|
||||
function argc(a:double):sword;
|
||||
|
|
|
@ -96,7 +96,7 @@ n l l.
|
|||
9@EFUND@Undefined float
|
||||
10@ECONV@Conversion error
|
||||
16*@ESTACK@Stack overflow
|
||||
17*@EHEAP@Heap overflow
|
||||
17@EHEAP@Heap overflow
|
||||
18*@EILLINS@Illegal instruction
|
||||
19*@EODDZ@Illegal size argument
|
||||
20*@ECASE@Case error
|
||||
|
|
Loading…
Reference in a new issue