implement newOrNil, changes to stdlib
- newOrNil works like new, but sets the variable to nil if the heap allocation failed - change stdlib to use newOrNil in openfile and openvolumeid - changes to programs that use openvolumeid
This commit is contained in:
parent
165517a9c8
commit
14d6de059d
10 changed files with 68 additions and 48 deletions
|
|
@ -14,8 +14,8 @@ var dirs:DirectorySlot;
|
|||
error:integer;
|
||||
begin
|
||||
lastSlot := volumeTable[volid].part.dirSize - 1;
|
||||
openvolumeid(volid);
|
||||
|
||||
openvolumeid(volid, error); (* we just ignore error here because
|
||||
we should always have enough heap space *)
|
||||
for i := 0 to lastSlot do
|
||||
begin
|
||||
getdirslot(volid, i, dirs, error);
|
||||
|
|
|
|||
|
|
@ -123,7 +123,8 @@ begin
|
|||
freeAreaCount := 0;
|
||||
lastUsed := 0;
|
||||
|
||||
openvolumeid(volid);
|
||||
openvolumeid(volid, error);
|
||||
(* ignoring theoretically possible out-of-heap-error *)
|
||||
i := 0;
|
||||
endSlot := volumeTable[volid].part.dirSize - 1;
|
||||
|
||||
|
|
@ -308,7 +309,7 @@ begin
|
|||
writeln('Volume ', volname, ' not found.')
|
||||
else
|
||||
begin
|
||||
openvolumeid(volid);
|
||||
openvolumeid(volid, error);
|
||||
|
||||
endSlot := volumeTable[volid].part.dirSize - 1;
|
||||
extentSize := volumeTable[volid].part.extentSize;
|
||||
|
|
|
|||
|
|
@ -102,8 +102,8 @@ begin
|
|||
count := PageMargin;
|
||||
|
||||
lastSlot := volumeTable[volid].part.dirSize - 1;
|
||||
openvolumeid(volid);
|
||||
|
||||
openvolumeid(volid, error);
|
||||
(* ignoring theoretically possible out-of-heap-space error *)
|
||||
for i := 0 to lastSlot do
|
||||
begin
|
||||
getdirslot(volid, i, dirs, error);
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ begin
|
|||
count := PageMargin;
|
||||
|
||||
writeln('reading directory of ', DefaultVolume);
|
||||
openvolumeid(volid);
|
||||
openvolumeid(volid, error);
|
||||
readdirfirst(volid, index, dirs, error);
|
||||
while index > 0 do
|
||||
begin
|
||||
|
|
|
|||
|
|
@ -398,7 +398,7 @@ begin
|
|||
writeln('Volume ', DefaultVolume, ' not found.')
|
||||
else
|
||||
begin
|
||||
openvolumeid(volid);
|
||||
openvolumeid(volid, error);
|
||||
readdirfirst(volid, index, dirs, error);
|
||||
while (index > 0) and (error = 0) do
|
||||
begin
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue