From 04630209a53b983d35daafe2979239b037b8f245 Mon Sep 17 00:00:00 2001 From: charlet Date: Tue, 29 Mar 2005 16:22:32 +0000 Subject: [PATCH] 2005-03-29 Robert Dewar * a-direct.ads, a-direct.adb (Start_Search): Free allocated search buffer if an exception is raised. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97188 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/a-direct.adb | 17 +++++++++-------- gcc/ada/a-direct.ads | 15 +++++++++------ 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/gcc/ada/a-direct.adb b/gcc/ada/a-direct.adb index 33562f1..8104559 100644 --- a/gcc/ada/a-direct.adb +++ b/gcc/ada/a-direct.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2004 Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2005 Free Software Foundation, Inc. -- -- -- -- 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- -- @@ -31,15 +31,15 @@ -- -- ------------------------------------------------------------------------------ -with Ada.Directories.Validity; use Ada.Directories.Validity; -with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; +with Ada.Directories.Validity; use Ada.Directories.Validity; +with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; with Ada.Unchecked_Deallocation; -with Ada.Characters.Handling; use Ada.Characters.Handling; +with Ada.Characters.Handling; use Ada.Characters.Handling; -with GNAT.Directory_Operations; use GNAT.Directory_Operations; -with GNAT.OS_Lib; use GNAT.OS_Lib; -with GNAT.Regexp; use GNAT.Regexp; --- ??? Ada units cannot depend on GNAT units +with GNAT.Directory_Operations; use GNAT.Directory_Operations; +with GNAT.OS_Lib; use GNAT.OS_Lib; +with GNAT.Regexp; use GNAT.Regexp; +-- ??? Ada units should not depend on GNAT units with System; @@ -938,6 +938,7 @@ package body Ada.Directories is exception when Error_In_Regexp => + Free (Search.Value); raise Name_Error; end; diff --git a/gcc/ada/a-direct.ads b/gcc/ada/a-direct.ads index 4cd2340..5047cc7 100644 --- a/gcc/ada/a-direct.ads +++ b/gcc/ada/a-direct.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2004 Free Software Foundation, Inc. -- +-- Copyright (C) 2004-2005 Free Software Foundation, Inc. -- -- -- -- This specification is derived for use with GNAT from AI-00248, which is -- -- expected to be a part of a future expected revised Ada Reference Manual. -- @@ -304,10 +304,10 @@ package Ada.Directories is -- Starts a search in the directory entry in the directory named by -- Directory for entries matching Pattern. Pattern represents a file name -- matching pattern. If Pattern is null, all items in the directory are - -- matched; otherwise, the interpretation of Pattern is - -- implementation-defined. Only items which match Filter will be returned. - -- After a successful call on Start_Search, the object Search may have - -- entries available, but it may have no entries available if no files or + -- matched; otherwise, the interpretation of Pattern is implementation- + -- defined. Only items which match Filter will be returned. After a + -- successful call on Start_Search, the object Search may have entries + -- available, but it may have no entries available if no files or -- directories match Pattern and Filter. The exception Name_Error is -- propagated if the string given by Directory does not identify an -- existing directory, or if Pattern does not allow the identification of @@ -317,7 +317,10 @@ package Ada.Directories is procedure End_Search (Search : in out Search_Type); -- Ends the search represented by Search. After a successful call on - -- End_Search, the object Search will have no entries available. + -- End_Search, the object Search will have no entries available. Note + -- that is is not necessary to call End_Search if the call to Start_Search + -- was unsuccessful and raised an exception (but it is harmless to make + -- the call in this case)> function More_Entries (Search : Search_Type) return Boolean; -- Returns True if more entries are available to be returned by a call -- 2.7.4