diff options
author | Emmanuel Briot <briot@adacore.com> | 2007-12-13 11:43:51 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2007-12-13 11:43:51 +0100 |
commit | aee21c6fec52d3a696344c134efd9e3841730ac1 (patch) | |
tree | c38fb30d974e308adfd91250aa0581785dc69182 /gcc | |
parent | 566b591edc6db2d1772b68fd28c47e85eb293dd3 (diff) | |
download | gcc-aee21c6fec52d3a696344c134efd9e3841730ac1.zip gcc-aee21c6fec52d3a696344c134efd9e3841730ac1.tar.gz gcc-aee21c6fec52d3a696344c134efd9e3841730ac1.tar.bz2 |
s-os_lib.ads, [...] (Normalize_Pathname): Do not compute Reference_Dir unless we actually need it.
2007-12-06 Emmanuel Briot <briot@adacore.com>
* s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
Reference_Dir unless we actually need it.
From-SVN: r130875
Diffstat (limited to 'gcc')
-rwxr-xr-x | gcc/ada/s-os_lib.adb | 19 | ||||
-rwxr-xr-x | gcc/ada/s-os_lib.ads | 7 |
2 files changed, 15 insertions, 11 deletions
diff --git a/gcc/ada/s-os_lib.adb b/gcc/ada/s-os_lib.adb index af4c394..7082ff09 100755 --- a/gcc/ada/s-os_lib.adb +++ b/gcc/ada/s-os_lib.adb @@ -1822,9 +1822,6 @@ package body System.OS_Lib is end if; end Get_Directory; - Reference_Dir : constant String := Get_Directory (Directory); - -- Current directory name specified - -- Start of processing for Normalize_Pathname begin @@ -1927,12 +1924,18 @@ package body System.OS_Lib is if Last = 1 and then not Is_Absolute_Path (Path_Buffer (1 .. End_Path)) then - Path_Buffer - (Reference_Dir'Length + 1 .. Reference_Dir'Length + End_Path) := + declare + Reference_Dir : constant String := Get_Directory (Directory); + Ref_Dir_Len : constant Natural := Reference_Dir'Length; + -- Current directory name specified and its length + + begin + Path_Buffer (Ref_Dir_Len + 1 .. Ref_Dir_Len + End_Path) := Path_Buffer (1 .. End_Path); - End_Path := Reference_Dir'Length + End_Path; - Path_Buffer (1 .. Reference_Dir'Length) := Reference_Dir; - Last := Reference_Dir'Length; + End_Path := Ref_Dir_Len + End_Path; + Path_Buffer (1 .. Ref_Dir_Len) := Reference_Dir; + Last := Ref_Dir_Len; + end; end if; Start := Last + 1; diff --git a/gcc/ada/s-os_lib.ads b/gcc/ada/s-os_lib.ads index bde73fd..e3c1079 100755 --- a/gcc/ada/s-os_lib.ads +++ b/gcc/ada/s-os_lib.ads @@ -507,6 +507,7 @@ package System.OS_Lib is -- directories listed in the environment Path. If the Exec_Name doesn't -- have the executable suffix, it will be appended before the search. -- Otherwise works like Locate_Regular_File below. + -- If the executable is not found, null is returned. -- -- Note that this function allocates some memory for the returned value. -- This memory needs to be deallocated after use. @@ -654,9 +655,9 @@ package System.OS_Lib is -- (notably Unix systems) a simple file name may also work (if the -- executable can be located in the path). -- - -- "Spawn" should not be used in tasking applications. Why not??? More - -- documentation would be helpful here ??? Is it really tasking programs, - -- or tasking activity that cause trouble ??? + -- "Spawn" should be avoided in tasking applications, since there are + -- subtle interactions between creating a process and signals/locks + -- that can cause troubles. -- -- Note: Arguments in Args that contain spaces and/or quotes such as -- "--GCC=gcc -v" or "--GCC=""gcc -v""" are not portable across all |