summaryrefslogtreecommitdiff
path: root/gcc/ada/a-chtgbo.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-07-30 14:29:05 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2014-07-30 14:29:05 +0000
commitac07802accadffbc9a2d932c14ad599d8e38fe91 (patch)
tree71cd8e1fabb3e180122c16f7f4247f629b720c7e /gcc/ada/a-chtgbo.ads
parent165e0f407ad88caf8240bb68361adac267996aa6 (diff)
downloadgcc-ac07802accadffbc9a2d932c14ad599d8e38fe91.tar.gz
2014-07-30 Robert Dewar <dewar@adacore.com>
* clean.adb: Minor reformatting. * opt.ads: Minor fix to incorrect comment. 2014-07-30 Ed Schonberg <schonberg@adacore.com> * a-chtgbo.ads, a-chtgbo.adb (Delete_Node_At_Index): New subprogram, used by bounded hashed sets, to delete a node at a given index, whose element may have been improperly updated through a Reference_Preserving key. * a-cbhase.ads: Add Reference_Control_Type to package Generic_Keys. * a-cbhase.adb: Add Adjust and Finalize routines for Reference_Control_Type. (Delete, Insert): Raise Program_Error, not Constraint_Error, when operation is illegal. (Reference_Preserving_Key): Build aggregate for Reference_Control_Type * a-cmbutr.ads: Add Reference_Control_Type to detect tampering. Add private with_clause for Ada.Finalization. * a-cbmutr.adb: Add Adjust and Finalize routines for Reference_Control_Type. Use it in the construction of Reference and Constant_Reference values. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213285 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/a-chtgbo.ads')
-rw-r--r--gcc/ada/a-chtgbo.ads13
1 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ada/a-chtgbo.ads b/gcc/ada/a-chtgbo.ads
index 0e9e9284018..719fae94ef5 100644
--- a/gcc/ada/a-chtgbo.ads
+++ b/gcc/ada/a-chtgbo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2013, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2014, 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- --
@@ -84,6 +84,17 @@ package Ada.Containers.Hash_Tables.Generic_Bounded_Operations is
-- the nodes, not the buckets array.) Program_Error is raised if the hash
-- table is busy.
+ procedure Delete_Node_At_Index
+ (HT : in out Hash_Table_Type'Class;
+ Indx : Hash_Type;
+ X : Count_Type);
+
+ -- Delete a node whose bucket position is known. extracted from following
+ -- subprogram, but also used directly to remove a node whose element has
+ -- been modified through a key_preserving reference: in that case we cannot
+ -- use the value of the element precisely because the current value does
+ -- not correspond to the hash code that determines its bucket.
+
procedure Delete_Node_Sans_Free
(HT : in out Hash_Table_Type'Class;
X : Count_Type);