diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-03 10:19:32 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-03 10:19:32 +0000 |
commit | 039fcfa6316d4a70d271d974f9ded9c2001a97b8 (patch) | |
tree | b0a3d19077a30eaebc12a8b662cc50d870dcdb04 /gcc/ada/mlib-prj.adb | |
parent | 3aa582cd74c2d892c68361298d2e6e83b9d1d595 (diff) | |
download | gcc-039fcfa6316d4a70d271d974f9ded9c2001a97b8.tar.gz |
2011-08-03 Emmanuel Briot <briot@adacore.com>
* gnatcmd.adb, prj-proc.adb, prj-proc.ads, make.adb, mlib-prj.adb,
prj.adb, prj.ads, makeutl.adb, makeutl.ads, clean.adb, prj-nmsc.adb,
prj-util.adb, prj-util.ads, prj-conf.adb, prj-conf.ads, prj-env.adb,
prj-env.ads (Shared_Project_Tree_Data): new type
An aggregate project and its aggregated trees need to share the common
data structures used for lists of strings, packages,... This makes the
code simpler since otherwise we have to pass the root tree (also used
for the configuration file data) in addition to the current project
tree. This also avoids ambiguities as to which tree should be used.
And finally this saves a bit of memory.
(For_Every_Project_Imported): new parameter Tree.
Since aggregated projects are using a different tree, we need to let
the caller know which tree to use to manipulate the returned project.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177261 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/mlib-prj.adb')
-rw-r--r-- | gcc/ada/mlib-prj.adb | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/gcc/ada/mlib-prj.adb b/gcc/ada/mlib-prj.adb index 656b9d4e824..af988ba78d3 100644 --- a/gcc/ada/mlib-prj.adb +++ b/gcc/ada/mlib-prj.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2010, AdaCore -- +-- Copyright (C) 2001-2011, AdaCore -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -901,7 +901,7 @@ package body MLib.Prj is Value_Of (Name => Name_Binder, In_Packages => For_Project.Decl.Packages, - In_Tree => In_Tree); + Shared => In_Tree.Shared); begin if Binder_Package /= No_Package then @@ -910,9 +910,9 @@ package body MLib.Prj is Value_Of (Name => Name_Default_Switches, In_Arrays => - In_Tree.Packages.Table + In_Tree.Shared.Packages.Table (Binder_Package).Decl.Arrays, - In_Tree => In_Tree); + Shared => In_Tree.Shared); Switches : Variable_Value := Nil_Variable_Value; Switch : String_List_Id := Nil_String; @@ -924,7 +924,7 @@ package body MLib.Prj is (Index => Name_Ada, Src_Index => 0, In_Array => Defaults, - In_Tree => In_Tree); + Shared => In_Tree.Shared); if not Switches.Default then Switch := Switches.Values; @@ -932,9 +932,9 @@ package body MLib.Prj is while Switch /= Nil_String loop Add_Argument (Get_Name_String - (In_Tree.String_Elements.Table + (In_Tree.Shared.String_Elements.Table (Switch).Value)); - Switch := In_Tree.String_Elements. + Switch := In_Tree.Shared.String_Elements. Table (Switch).Next; end loop; end if; @@ -1277,7 +1277,8 @@ package body MLib.Prj is -- If attribute Library_Options was specified, add these options Library_Options := Value_Of - (Name_Library_Options, For_Project.Decl.Attributes, In_Tree); + (Name_Library_Options, For_Project.Decl.Attributes, + In_Tree.Shared); if not Library_Options.Default then declare @@ -1287,7 +1288,7 @@ package body MLib.Prj is begin Current := Library_Options.Values; while Current /= Nil_String loop - Element := In_Tree.String_Elements.Table (Current); + Element := In_Tree.Shared.String_Elements.Table (Current); Get_Name_String (Element.Value); if Name_Len /= 0 then @@ -1756,12 +1757,12 @@ package body MLib.Prj is while Iface /= Nil_String loop ALI := File_Name_Type - (In_Tree.String_Elements.Table (Iface).Value); + (In_Tree.Shared.String_Elements.Table (Iface).Value); Interface_ALIs.Set (ALI, True); Get_Name_String - (In_Tree.String_Elements.Table (Iface).Value); + (In_Tree.Shared.String_Elements.Table (Iface).Value); Add_Argument (Name_Buffer (1 .. Name_Len)); - Iface := In_Tree.String_Elements.Table (Iface).Next; + Iface := In_Tree.Shared.String_Elements.Table (Iface).Next; end loop; Iface := For_Project.Lib_Interface_ALIs; @@ -1775,9 +1776,10 @@ package body MLib.Prj is while Iface /= Nil_String loop ALI := File_Name_Type - (In_Tree.String_Elements.Table (Iface).Value); + (In_Tree.Shared.String_Elements.Table (Iface).Value); Process (ALI); - Iface := In_Tree.String_Elements.Table (Iface).Next; + Iface := + In_Tree.Shared.String_Elements.Table (Iface).Next; end loop; end if; end; |