fixed, now dep install order is right.

This commit is contained in:
Norayr Chilingarian 2020-06-10 18:34:26 +04:00
parent f2fb8651b3
commit d3be79cbe9
2 changed files with 13 additions and 12 deletions

View file

@ -19,7 +19,7 @@ BEGIN
Out.String("-----------------"); Out.Ln; Out.String("-----------------"); Out.Ln;
Out.String("(use 'dot -Tpng deps.dot > deps.png' to get the graph image)"); Out.Ln; Out.Ln; Out.String("(use 'dot -Tpng deps.dot > deps.png' to get the graph image)"); Out.Ln; Out.Ln;
Out.String("dependencies will be installed in the following order:"); Out.Ln; Out.String("dependencies will be installed in the following order:"); Out.Ln;
i := 1; i := 0;
REPEAT REPEAT
dep := vpkdepTree.Get(tree, i); dep := vpkdepTree.Get(tree, i);
Out.String(dep.name^); Out.Ln; Out.String(dep.name^); Out.Ln;

View file

@ -14,11 +14,11 @@ TYPE
First- : Tdep; First- : Tdep;
Last- : Tdep; Last- : Tdep;
Create* : PROCEDURE () : TdepTree; Create* : PROCEDURE () : TdepTree;
Free* : PROCEDURE (l : TdepTree); Free* : PROCEDURE (VAR l : TdepTree);
Clear* : PROCEDURE (l : TdepTree); Clear* : PROCEDURE (VAR l : TdepTree);
Add* : PROCEDURE (l : TdepTree; s : Tdep); Add* : PROCEDURE (VAR l : TdepTree; VAR s : Tdep);
Get* : PROCEDURE (l : TdepTree; i : LONGINT): Tdep; Get* : PROCEDURE (VAR l : TdepTree; i : LONGINT): Tdep;
Empty* : PROCEDURE (l : TdepTree) : BOOLEAN; Empty* : PROCEDURE (VAR l : TdepTree) : BOOLEAN;
Count* : LONGINT; Count* : LONGINT;
END; END;
@ -42,22 +42,23 @@ BEGIN
UNTIL i = s.Count - 1; UNTIL i = s.Count - 1;
END list; END list;
PROCEDURE Free*(l : TdepTree); PROCEDURE Free*(VAR l : TdepTree);
BEGIN BEGIN
l := NIL
END Free; END Free;
PROCEDURE Clear*(l : TdepTree); PROCEDURE Clear*(VAR l : TdepTree);
BEGIN BEGIN
l.First := NIL; l.First := NIL;
l.Count := 0; l.Count := 0;
END Clear; END Clear;
PROCEDURE Empty* (l : TdepTree) : BOOLEAN; PROCEDURE Empty* (VAR l : TdepTree) : BOOLEAN;
BEGIN BEGIN
RETURN l.First = NIL RETURN l.First = NIL
END Empty; END Empty;
PROCEDURE Add* (l : TdepTree; d: Tdep); PROCEDURE Add* (VAR l : TdepTree; VAR d: Tdep);
BEGIN BEGIN
IF l.First = NIL THEN IF l.First = NIL THEN
l.First := d; l.First := d;
@ -68,12 +69,12 @@ PROCEDURE Add* (l : TdepTree; d: Tdep);
INC(l.Count); INC(l.Count);
END Add; END Add;
PROCEDURE Get*(l: TdepTree; inx: LONGINT): Tdep; PROCEDURE Get*(VAR l: TdepTree; inx: LONGINT): Tdep;
VAR VAR
i: LONGINT; i: LONGINT;
d: Tdep; d: Tdep;
BEGIN BEGIN
NEW(d); d := NIL; d := NIL;
i := 0; i := 0;
IF (inx < l.Count) & (inx >= 0) THEN IF (inx < l.Count) & (inx >= 0) THEN
i := 0; i := 0;