diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-04-15 12:46:56 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2009-04-15 12:46:56 +0200 |
commit | 1f6821b4dcdcc3bf95f6aa4551cc755e113162be (patch) | |
tree | 10bddee8ce636cf702726cb420bef283041bab7d /gcc/ada/prj.adb | |
parent | 507ed3fd5bb9f377bade052259a61d53d3a7bedc (diff) | |
download | gcc-1f6821b4dcdcc3bf95f6aa4551cc755e113162be.zip gcc-1f6821b4dcdcc3bf95f6aa4551cc755e113162be.tar.gz gcc-1f6821b4dcdcc3bf95f6aa4551cc755e113162be.tar.bz2 |
[multiple changes]
2009-04-15 Robert Dewar <dewar@adacore.com>
* frontend.adb (Frontend): Set proper default for
Warn_On_Non_Local_Exception.
* opt.ads (Exception_Handler_Encountered): New flag
(No_Warn_On_Non_Local_Exception): New flag
* par-ch11.adb (P_Exception_Handler): Set Exception_Handler_Encountered
* sem_warn.adb (Set_Warning_Switch): Set No_Warn_On_Non_Local_Exception
(Set_Dot_Warning_Switch): Set No_Warn_On_Non_Local_Exception
2009-04-15 Cyrille Comar <comar@adacore.com>
* s-tassta.adb, a-exextr.adb, a-elchha.adb
(Ada.Exception.Last_Chance_Handler): Do not print unhandled exception
message when exception traces are active since it would generate
redundant information.
(Exception_Traces.Notify_Exception): put message output by a critical
section to avoid unsynchronized output.
(Trace_Unhandled_Exception_In_Task): put message output by a critical
section to avoid unsynchronized output.
2009-04-15 Emmanuel Briot <briot@adacore.com>
* g-comlin.adb, prj-tree.adb, prj-tree.ads, prj.adb, prj.ads
(Free): New subprogram.
From-SVN: r146100
Diffstat (limited to 'gcc/ada/prj.adb')
-rw-r--r-- | gcc/ada/prj.adb | 47 |
1 files changed, 41 insertions, 6 deletions
diff --git a/gcc/ada/prj.adb b/gcc/ada/prj.adb index ca804d9..6c26bc1 100644 --- a/gcc/ada/prj.adb +++ b/gcc/ada/prj.adb @@ -24,6 +24,7 @@ ------------------------------------------------------------------------------ with Ada.Characters.Handling; use Ada.Characters.Handling; +with Ada.Unchecked_Deallocation; with Debug; with Output; use Output; @@ -826,17 +827,51 @@ package body Prj is end if; end Register_Default_Naming_Scheme; + ---------- + -- Free -- + ---------- + + procedure Free (Tree : in out Project_Tree_Ref) is + procedure Unchecked_Free is new Ada.Unchecked_Deallocation + (Project_Tree_Data, Project_Tree_Ref); + begin + if Tree /= null then + Language_Data_Table.Free (Tree.Languages_Data); + Name_List_Table.Free (Tree.Name_Lists); + String_Element_Table.Free (Tree.String_Elements); + Variable_Element_Table.Free (Tree.Variable_Elements); + Array_Element_Table.Free (Tree.Array_Elements); + Array_Table.Free (Tree.Arrays); + Package_Table.Free (Tree.Packages); + Project_List_Table.Free (Tree.Project_Lists); + Project_Table.Free (Tree.Projects); + Source_Data_Table.Free (Tree.Sources); + Alternate_Language_Table.Free (Tree.Alt_Langs); + Unit_Table.Free (Tree.Units); + Units_Htable.Reset (Tree.Units_HT); + Files_Htable.Reset (Tree.Files_HT); + Source_Paths_Htable.Reset (Tree.Source_Paths_HT); + Unit_Sources_Htable.Reset (Tree.Unit_Sources_HT); + + -- Private part + + Naming_Table.Free (Tree.Private_Part.Namings); + Path_File_Table.Free (Tree.Private_Part.Path_Files); + Source_Path_Table.Free (Tree.Private_Part.Source_Paths); + Object_Path_Table.Free (Tree.Private_Part.Object_Paths); + + -- Naming data (nothing to free ?) + null; + + Unchecked_Free (Tree); + end if; + end Free; + ----------- -- Reset -- ----------- procedure Reset (Tree : Project_Tree_Ref) is - - -- Def_Lang : constant Name_Node := - -- (Name => Name_Ada, - -- Next => No_Name_List); - -- Why is the above commented out ??? - begin Prj.Env.Initialize; |