aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/configuration.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2017-11-11 08:48:28 +0100
committerTristan Gingold <tgingold@free.fr>2017-11-11 08:48:28 +0100
commite8a21ffe5226aad4970bd1facd4a3464a4b436f1 (patch)
tree6dabc27375bc31dbd435d50a98dc223fa4145ac2 /src/vhdl/configuration.adb
parent9a90393e30827308ec6cd834963f5359158115a0 (diff)
downloadghdl-e8a21ffe5226aad4970bd1facd4a3464a4b436f1.tar.gz
ghdl-e8a21ffe5226aad4970bd1facd4a3464a4b436f1.tar.bz2
ghdl-e8a21ffe5226aad4970bd1facd4a3464a4b436f1.zip
Rework list implementation, use iterator.
Diffstat (limited to 'src/vhdl/configuration.adb')
-rw-r--r--src/vhdl/configuration.adb8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/vhdl/configuration.adb b/src/vhdl/configuration.adb
index f02c17d25..1d32b9c1f 100644
--- a/src/vhdl/configuration.adb
+++ b/src/vhdl/configuration.adb
@@ -40,6 +40,7 @@ package body Configuration is
procedure Add_Design_Unit (Unit : Iir_Design_Unit; From : Iir)
is
List : Iir_List;
+ It : List_Iterator;
El : Iir;
Lib_Unit : Iir;
File : Iir_Design_File;
@@ -111,9 +112,9 @@ package body Configuration is
-- Note: a design unit may be referenced but unused.
-- (eg: component specification which does not apply).
List := Get_Dependence_List (Unit);
- for I in Natural loop
- El := Get_Nth_Element (List, I);
- exit when El = Null_Iir;
+ It := List_Iterate (List);
+ while Is_Valid (It) loop
+ El := Get_Element (It);
El := Libraries.Find_Design_Unit (El);
if El /= Null_Iir then
Lib_Unit := Get_Library_Unit (El);
@@ -129,6 +130,7 @@ package body Configuration is
end case;
end if;
end if;
+ Next (It);
end loop;
-- Lib_Unit may have changed.