summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-ada/gnatcoll/files/gnatcoll-2017-gentoo.patch')
-rw-r--r--dev-ada/gnatcoll/files/gnatcoll-2017-gentoo.patch62
1 files changed, 62 insertions, 0 deletions
diff --git a/dev-ada/gnatcoll/files/gnatcoll-2017-gentoo.patch b/dev-ada/gnatcoll/files/gnatcoll-2017-gentoo.patch
index 36da82626f4c..f0ec53f368ea 100644
--- a/dev-ada/gnatcoll/files/gnatcoll-2017-gentoo.patch
+++ b/dev-ada/gnatcoll/files/gnatcoll-2017-gentoo.patch
@@ -142,3 +142,65 @@
GNAT_Version => GNAT_Version,
Errors => Local_On_Error'Unrestricted_Access);
Free (GNAT_Version);
+--- a/src/gnatcoll-projects.adb 2018-11-14 18:47:27.760365233 +0100
++++ b/src/gnatcoll-projects.adb 2018-11-14 19:10:43.961337201 +0100
+@@ -3273,9 +3273,9 @@
+ Status : out Status_Type;
+ Result : out GNATCOLL.VFS.File_Array_Access)
+ is
+- Mains_Str_List : String_List_Access;
++ Mains_Str_List : String_Vectors.Vector;
+ Closure_Status : GPR.Util.Status_Type;
+- Closures_List : String_List_Access;
++ Closures_List : String_Vectors.Vector;
+ begin
+ Trace (Me, "Get_Closures");
+
+@@ -3287,25 +3287,18 @@
+ return;
+ end if;
+
+- Mains_Str_List := new String_List (Mains'First .. Mains'Last);
+ for I in Mains'Range loop
+- Mains_Str_List (I) := new String'(Mains (I).Display_Base_Name);
++ Mains_Str_List.Append (Mains (I).Display_Base_Name);
+ end loop;
+
+ GPR.Util.Get_Closures
+ (Project.Get_View, Project.Tree_View,
+- Mains => Mains_Str_List.all,
++ Mains => Mains_Str_List,
+ All_Projects => All_Projects,
+ Include_Externally_Built => Include_Externally_Built,
+ Status => Closure_Status,
+ Result => Closures_List);
+
+- -- Freeing temporary list of mains.
+- for I in Mains_Str_List'Range loop
+- Free (Mains_Str_List (I));
+- end loop;
+- Free (Mains_Str_List);
+-
+ case Closure_Status is
+ when Success =>
+ Status := Success;
+@@ -3321,17 +3314,10 @@
+ end case;
+
+ if Closure_Status in Success | Incomplete_Closure then
+- for I in Closures_List'Range loop
+- Append (Result, Create (+Closures_List (I).all));
++ for Closure of Closures_List loop
++ Append (Result, Create (+Closure));
+ end loop;
+ end if;
+-
+- -- Freeing temporary list of closures.
+- for I in Closures_List'Range loop
+- Free (Closures_List (I));
+- end loop;
+- Free (Closures_List);
+-
+ end Get_Closures;
+
+ ----------------