Patchwork [Ada] exception messages now correctly identify kind of tampering

login
register
mail settings
Submitter Arnaud Charlet
Date Sept. 9, 2010, 1:32 p.m.
Message ID <20100909133237.GA8112@adacore.com>
Download mbox | patch
Permalink /patch/64297/
State New
Headers show

Comments

Arnaud Charlet - Sept. 9, 2010, 1:32 p.m.
When a container operation calls back to a user-defined subprogram (for
example, in Iterate or Query_Element), the state of the container is
modified in order to prevent "tampering" while the subprogram executes.

There are two classes of tampering.  "Cursor tampering" prevents items from
being added to or removed from the container while the subprogram is executing
(internally the container is marked as "busy").  "Element tampering" prevents
the value of an element from being changed (internally the container is marked
as "locked").

In several instances, the messages for exceptions associated with cursor
tampering incorrectly referred to this error as element tampering.  In several
other instances, exception messages for element tampering incorrectly referred
to the error as cursor tampering.  These have all been corrected.

Tested on x86_64-pc-linux-gnu, committed on trunk

2010-09-09  Matthew Heaney  <heaney@adacore.com>

	* a-convec.adb, a-coinve.adb (Clear, Delete, Delete_Last, Finalize,
	Merge, Insert, Insert_Space, Move, Reserve_Capacity, Generic_Sorting,
	Replace_Element, Reverse_Elements, Swap): Change exception message to
	correctly indicate kind of tampering (cursor or element).
	* a-cdlili.adb, a-cidlli.adb (Clear, Delete, Delete_First, Delete_Last,
	Merge, Generic_Sorting, Insert, Move, Reverse_Elements, Splice,
	Swap_Links, Replace_Element, Swap): Ditto.
	* a-coorse.adb, a-ciorse.adb (Include, Replace, Replace_Element): Ditto
	* a-coorma.adb, a-ciorma.adb (Include, Replace, Replace_Element): Ditto
	* a-coormu.adb, a-ciormu.adb (Replace_Element): Ditto
	* a-chtgke.adb (Delete_Key_Sans_Free, Generic_Conditional_Insert,
	Generic_Replace_Element): Ditto
	* a-chtgop.adb (Clear, Move, Reserve_Capacity): Ditto
	* a-cohama.adb, a-cihama.adb (Delete, Include, Replace,
	Replace_Element): Ditto.
	* a-cohase.adb, a-cihase.adb (Delete, Difference, Intersection,
	Symmetric_Difference, Union, Include, Replace): Ditto

Patch

Index: a-cdlili.adb
===================================================================
--- a-cdlili.adb	(revision 164000)
+++ a-cdlili.adb	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2010, 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- --
@@ -151,7 +151,7 @@  package body Ada.Containers.Doubly_Linke
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       while Container.Length > 1 loop
@@ -227,7 +227,7 @@  package body Ada.Containers.Doubly_Linke
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       for Index in 1 .. Count loop
@@ -277,7 +277,7 @@  package body Ada.Containers.Doubly_Linke
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       for I in 1 .. Count loop
@@ -315,7 +315,7 @@  package body Ada.Containers.Doubly_Linke
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       for I in 1 .. Count loop
@@ -464,12 +464,12 @@  package body Ada.Containers.Doubly_Linke
 
          if Target.Busy > 0 then
             raise Program_Error with
-              "attempt to tamper with elements of Target (list is busy)";
+              "attempt to tamper with cursors of Target (list is busy)";
          end if;
 
          if Source.Busy > 0 then
             raise Program_Error with
-              "attempt to tamper with elements of Source (list is busy)";
+              "attempt to tamper with cursors of Source (list is busy)";
          end if;
 
          LI := First (Target);
@@ -583,7 +583,7 @@  package body Ada.Containers.Doubly_Linke
 
          if Container.Busy > 0 then
             raise Program_Error with
-              "attempt to tamper with elements (list is busy)";
+              "attempt to tamper with cursors (list is busy)";
          end if;
 
          Sort (Front => null, Back => null);
@@ -638,7 +638,7 @@  package body Ada.Containers.Doubly_Linke
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       New_Node := new Node_Type'(New_Item, null, null);
@@ -693,7 +693,7 @@  package body Ada.Containers.Doubly_Linke
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       New_Node := new Node_Type;
@@ -844,7 +844,7 @@  package body Ada.Containers.Doubly_Linke
 
       if Source.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements of Source (list is busy)";
+           "attempt to tamper with cursors of Source (list is busy)";
       end if;
 
       Clear (Target);
@@ -1048,7 +1048,7 @@  package body Ada.Containers.Doubly_Linke
 
       if Container.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (list is locked)";
+           "attempt to tamper with elements (list is locked)";
       end if;
 
       pragma Assert (Vet (Position), "bad cursor in Replace_Element");
@@ -1116,7 +1116,7 @@  package body Ada.Containers.Doubly_Linke
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       Container.First := J;
@@ -1243,12 +1243,12 @@  package body Ada.Containers.Doubly_Linke
 
       if Target.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements of Target (list is busy)";
+           "attempt to tamper with cursors of Target (list is busy)";
       end if;
 
       if Source.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements of Source (list is busy)";
+           "attempt to tamper with cursors of Source (list is busy)";
       end if;
 
       if Target.Length = 0 then
@@ -1328,7 +1328,7 @@  package body Ada.Containers.Doubly_Linke
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       if Before.Node = null then
@@ -1432,12 +1432,12 @@  package body Ada.Containers.Doubly_Linke
 
       if Target.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements of Target (list is busy)";
+           "attempt to tamper with cursors of Target (list is busy)";
       end if;
 
       if Source.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements of Source (list is busy)";
+           "attempt to tamper with cursors of Source (list is busy)";
       end if;
 
       if Position.Node = Source.First then
@@ -1536,7 +1536,7 @@  package body Ada.Containers.Doubly_Linke
 
       if Container.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (list is locked)";
+           "attempt to tamper with elements (list is locked)";
       end if;
 
       pragma Assert (Vet (I), "bad I cursor in Swap");
@@ -1585,7 +1585,7 @@  package body Ada.Containers.Doubly_Linke
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       pragma Assert (Vet (I), "bad I cursor in Swap_Links");
Index: a-cihama.adb
===================================================================
--- a-cihama.adb	(revision 164089)
+++ a-cihama.adb	(working copy)
@@ -197,7 +197,7 @@  package body Ada.Containers.Indefinite_H
 
       if Container.HT.Busy > 0 then
          raise Program_Error with
-           "Delete attempted to tamper with elements (map is busy)";
+           "Delete attempted to tamper with cursors (map is busy)";
       end if;
 
       pragma Assert (Vet (Position), "bad cursor in Delete");
@@ -482,7 +482,7 @@  package body Ada.Containers.Indefinite_H
       if not Inserted then
          if Container.HT.Lock > 0 then
             raise Program_Error with
-              "Include attempted to tamper with cursors (map is locked)";
+              "Include attempted to tamper with elements (map is locked)";
          end if;
 
          K := Position.Node.Key;
@@ -836,7 +836,7 @@  package body Ada.Containers.Indefinite_H
 
       if Container.HT.Lock > 0 then
          raise Program_Error with
-           "Replace attempted to tamper with cursors (map is locked)";
+           "Replace attempted to tamper with elements (map is locked)";
       end if;
 
       K := Node.Key;
@@ -885,7 +885,7 @@  package body Ada.Containers.Indefinite_H
 
       if Position.Container.HT.Lock > 0 then
          raise Program_Error with
-           "Replace_Element attempted to tamper with cursors (map is locked)";
+           "Replace_Element attempted to tamper with elements (map is locked)";
       end if;
 
       pragma Assert (Vet (Position), "bad cursor in Replace_Element");
Index: a-coinve.adb
===================================================================
--- a-coinve.adb	(revision 164000)
+++ a-coinve.adb	(working copy)
@@ -619,7 +619,7 @@  package body Ada.Containers.Indefinite_V
    begin
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (vector is busy)";
+           "attempt to tamper with cursors (vector is busy)";
       end if;
 
       while Container.Last >= Index_Type'First loop
@@ -720,7 +720,7 @@  package body Ada.Containers.Indefinite_V
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (vector is busy)";
+           "attempt to tamper with cursors (vector is busy)";
       end if;
 
       --  We first calculate what's available for deletion starting at
@@ -911,7 +911,7 @@  package body Ada.Containers.Indefinite_V
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (vector is busy)";
+           "attempt to tamper with cursors (vector is busy)";
       end if;
 
       --  Elements in an indefinite vector are allocated, so we must iterate
@@ -1182,7 +1182,7 @@  package body Ada.Containers.Indefinite_V
 
          if Source.Busy > 0 then
             raise Program_Error with
-              "attempt to tamper with elements (vector is busy)";
+              "attempt to tamper with cursors (vector is busy)";
          end if;
 
          I := Target.Last;  -- original value (before Set_Length)
@@ -1258,7 +1258,7 @@  package body Ada.Containers.Indefinite_V
 
          if Container.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (vector is locked)";
+              "attempt to tamper with elements (vector is locked)";
          end if;
 
          Sort (Container.Elements.EA (Index_Type'First .. Container.Last));
@@ -1491,7 +1491,7 @@  package body Ada.Containers.Indefinite_V
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (vector is busy)";
+           "attempt to tamper with cursors (vector is busy)";
       end if;
 
       if New_Length <= Container.Elements.EA'Length then
@@ -2210,7 +2210,7 @@  package body Ada.Containers.Indefinite_V
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (vector is busy)";
+           "attempt to tamper with cursors (vector is busy)";
       end if;
 
       if New_Length <= Container.Elements.EA'Length then
@@ -2500,7 +2500,7 @@  package body Ada.Containers.Indefinite_V
 
       if Source.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (Source is busy)";
+           "attempt to tamper with cursors (Source is busy)";
       end if;
 
       Clear (Target);  --  Checks busy-bit
@@ -2711,7 +2711,7 @@  package body Ada.Containers.Indefinite_V
 
       if Container.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (vector is locked)";
+           "attempt to tamper with elements (vector is locked)";
       end if;
 
       declare
@@ -2742,7 +2742,7 @@  package body Ada.Containers.Indefinite_V
 
       if Container.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (vector is locked)";
+           "attempt to tamper with elements (vector is locked)";
       end if;
 
       declare
@@ -2812,7 +2812,7 @@  package body Ada.Containers.Indefinite_V
 
             if Container.Busy > 0 then
                raise Program_Error with
-                 "attempt to tamper with elements (vector is busy)";
+                 "attempt to tamper with cursors (vector is busy)";
             end if;
 
             declare
@@ -2943,7 +2943,7 @@  package body Ada.Containers.Indefinite_V
 
             if Container.Busy > 0 then
                raise Program_Error with
-                 "attempt to tamper with elements (vector is busy)";
+                 "attempt to tamper with cursors (vector is busy)";
             end if;
 
             declare
@@ -2998,7 +2998,7 @@  package body Ada.Containers.Indefinite_V
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (vector is busy)";
+           "attempt to tamper with cursors (vector is busy)";
       end if;
 
       --  We now allocate a new internal array, having a length different from
@@ -3042,7 +3042,7 @@  package body Ada.Containers.Indefinite_V
 
       if Container.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (vector is locked)";
+           "attempt to tamper with elements (vector is locked)";
       end if;
 
       declare
@@ -3207,7 +3207,7 @@  package body Ada.Containers.Indefinite_V
 
       if Container.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (vector is locked)";
+           "attempt to tamper with elements (vector is locked)";
       end if;
 
       declare
Index: a-ciorse.adb
===================================================================
--- a-ciorse.adb	(revision 164000)
+++ a-ciorse.adb	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2010, 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- --
@@ -930,7 +930,7 @@  package body Ada.Containers.Indefinite_O
       if not Inserted then
          if Container.Tree.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (set is locked)";
+              "attempt to tamper with elements (set is locked)";
          end if;
 
          X := Position.Node.Element;
@@ -1444,7 +1444,7 @@  package body Ada.Containers.Indefinite_O
 
       if Container.Tree.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (set is locked)";
+           "attempt to tamper with elements (set is locked)";
       end if;
 
       X := Node.Element;
@@ -1499,7 +1499,7 @@  package body Ada.Containers.Indefinite_O
 
       X : Element_Access := Node.Element;
 
-      --  Start of processing for Insert
+      --  Start of processing for Replace_Element
 
    begin
       if Item < Node.Element.all
@@ -1510,7 +1510,7 @@  package body Ada.Containers.Indefinite_O
       else
          if Tree.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (set is locked)";
+              "attempt to tamper with elements (set is locked)";
          end if;
 
          Node.Element := new Element_Type'(Item);
@@ -1528,7 +1528,7 @@  package body Ada.Containers.Indefinite_O
          if Hint = Node then
             if Tree.Lock > 0 then
                raise Program_Error with
-                 "attempt to tamper with cursors (set is locked)";
+                 "attempt to tamper with elements (set is locked)";
             end if;
 
             Node.Element := new Element_Type'(Item);
Index: a-coorma.adb
===================================================================
--- a-coorma.adb	(revision 164000)
+++ a-coorma.adb	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2010, 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- --
@@ -537,7 +537,7 @@  package body Ada.Containers.Ordered_Maps
       if not Inserted then
          if Container.Tree.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (map is locked)";
+              "attempt to tamper with elements (map is locked)";
          end if;
 
          Position.Node.Key := Key;
@@ -1018,7 +1018,7 @@  package body Ada.Containers.Ordered_Maps
 
       if Container.Tree.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (map is locked)";
+           "attempt to tamper with elements (map is locked)";
       end if;
 
       Node.Key := Key;
@@ -1047,7 +1047,7 @@  package body Ada.Containers.Ordered_Maps
 
       if Container.Tree.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (map is locked)";
+           "attempt to tamper with elements (map is locked)";
       end if;
 
       pragma Assert (Vet (Container.Tree, Position.Node),
Index: a-cidlli.adb
===================================================================
--- a-cidlli.adb	(revision 164000)
+++ a-cidlli.adb	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2010, 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- --
@@ -175,7 +175,7 @@  package body Ada.Containers.Indefinite_D
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       while Container.Length > 1 loop
@@ -254,7 +254,7 @@  package body Ada.Containers.Indefinite_D
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       for Index in 1 .. Count loop
@@ -304,7 +304,7 @@  package body Ada.Containers.Indefinite_D
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       for I in 1 .. Count loop
@@ -342,7 +342,7 @@  package body Ada.Containers.Indefinite_D
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       for I in 1 .. Count loop
@@ -510,12 +510,12 @@  package body Ada.Containers.Indefinite_D
 
          if Target.Busy > 0 then
             raise Program_Error with
-              "attempt to tamper with elements of Target (list is busy)";
+              "attempt to tamper with cursors of Target (list is busy)";
          end if;
 
          if Source.Busy > 0 then
             raise Program_Error with
-              "attempt to tamper with elements of Source (list is busy)";
+              "attempt to tamper with cursors of Source (list is busy)";
          end if;
 
          LI := First (Target);
@@ -627,7 +627,7 @@  package body Ada.Containers.Indefinite_D
 
          if Container.Busy > 0 then
             raise Program_Error with
-              "attempt to tamper with elements (list is busy)";
+              "attempt to tamper with cursors (list is busy)";
          end if;
 
          Sort (Front => null, Back => null);
@@ -665,7 +665,7 @@  package body Ada.Containers.Indefinite_D
       if Before.Container /= null then
          if Before.Container /= Container'Unrestricted_Access then
             raise Program_Error with
-              "attempt to tamper with elements (list is busy)";
+              "attempt to tamper with cursors (list is busy)";
          end if;
 
          if Before.Node = null
@@ -689,7 +689,7 @@  package body Ada.Containers.Indefinite_D
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       declare
@@ -867,7 +867,7 @@  package body Ada.Containers.Indefinite_D
 
       if Source.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements of Source (list is busy)";
+           "attempt to tamper with cursors of Source (list is busy)";
       end if;
 
       Clear (Target);
@@ -1077,7 +1077,7 @@  package body Ada.Containers.Indefinite_D
 
       if Container.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (list is locked)";
+           "attempt to tamper with elements (list is locked)";
       end if;
 
       if Position.Node.Element = null then
@@ -1156,7 +1156,7 @@  package body Ada.Containers.Indefinite_D
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       Container.First := J;
@@ -1293,12 +1293,12 @@  package body Ada.Containers.Indefinite_D
 
       if Target.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements of Target (list is busy)";
+           "attempt to tamper with cursors of Target (list is busy)";
       end if;
 
       if Source.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements of Source (list is busy)";
+           "attempt to tamper with cursors of Source (list is busy)";
       end if;
 
       if Target.Length = 0 then
@@ -1388,7 +1388,7 @@  package body Ada.Containers.Indefinite_D
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       if Before.Node = null then
@@ -1504,12 +1504,12 @@  package body Ada.Containers.Indefinite_D
 
       if Target.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements of Target (list is busy)";
+           "attempt to tamper with cursors of Target (list is busy)";
       end if;
 
       if Source.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements of Source (list is busy)";
+           "attempt to tamper with cursors of Source (list is busy)";
       end if;
 
       if Position.Node = Source.First then
@@ -1608,7 +1608,7 @@  package body Ada.Containers.Indefinite_D
 
       if Container.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (list is locked)";
+           "attempt to tamper with elements (list is locked)";
       end if;
 
       pragma Assert (Vet (I), "bad I cursor in Swap");
@@ -1654,7 +1654,7 @@  package body Ada.Containers.Indefinite_D
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (list is busy)";
+           "attempt to tamper with cursors (list is busy)";
       end if;
 
       pragma Assert (Vet (I), "bad I cursor in Swap_Links");
Index: a-ciormu.adb
===================================================================
--- a-ciormu.adb	(revision 164000)
+++ a-ciormu.adb	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2010, 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- --
@@ -1564,7 +1564,7 @@  package body Ada.Containers.Indefinite_O
       else
          if Tree.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (set is locked)";
+              "attempt to tamper with elements (set is locked)";
          end if;
 
          declare
Index: a-cihase.adb
===================================================================
--- a-cihase.adb	(revision 164000)
+++ a-cihase.adb	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2010, 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- --
@@ -242,7 +242,7 @@  package body Ada.Containers.Indefinite_H
 
       if Container.HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (set is busy)";
+           "attempt to tamper with cursors (set is busy)";
       end if;
 
       pragma Assert (Vet (Position), "Position cursor is bad");
@@ -275,7 +275,7 @@  package body Ada.Containers.Indefinite_H
 
       if Target.HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (set is busy)";
+           "attempt to tamper with cursors (set is busy)";
       end if;
 
       if Source.HT.Length < Target.HT.Length then
@@ -667,7 +667,7 @@  package body Ada.Containers.Indefinite_H
       if not Inserted then
          if Container.HT.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (set is locked)";
+              "attempt to tamper with elements (set is locked)";
          end if;
 
          X := Position.Node.Element;
@@ -776,7 +776,7 @@  package body Ada.Containers.Indefinite_H
 
       if Target.HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (set is busy)";
+           "attempt to tamper with cursors (set is busy)";
       end if;
 
       Tgt_Node := HT_Ops.First (Target.HT);
@@ -1145,7 +1145,7 @@  package body Ada.Containers.Indefinite_H
 
       if Container.HT.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (set is locked)";
+           "attempt to tamper with elements (set is locked)";
       end if;
 
       X := Node.Element;
@@ -1220,7 +1220,7 @@  package body Ada.Containers.Indefinite_H
 
       if Target.HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (set is busy)";
+           "attempt to tamper with cursors (set is busy)";
       end if;
 
       declare
@@ -1540,7 +1540,7 @@  package body Ada.Containers.Indefinite_H
 
       if Target.HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (set is busy)";
+           "attempt to tamper with cursors (set is busy)";
       end if;
 
       declare
Index: a-cohama.adb
===================================================================
--- a-cohama.adb	(revision 164089)
+++ a-cohama.adb	(working copy)
@@ -192,7 +192,7 @@  package body Ada.Containers.Hashed_Maps 
 
       if Container.HT.Busy > 0 then
          raise Program_Error with
-           "Delete attempted to tamper with elements (map is busy)";
+           "Delete attempted to tamper with cursors (map is busy)";
       end if;
 
       pragma Assert (Vet (Position), "bad cursor in Delete");
@@ -413,7 +413,7 @@  package body Ada.Containers.Hashed_Maps 
       if not Inserted then
          if Container.HT.Lock > 0 then
             raise Program_Error with
-              "Include attempted to tamper with cursors (map is locked)";
+              "Include attempted to tamper with elements (map is locked)";
          end if;
 
          Position.Node.Key := Key;
@@ -755,7 +755,7 @@  package body Ada.Containers.Hashed_Maps 
 
       if Container.HT.Lock > 0 then
          raise Program_Error with
-           "Replace attempted to tamper with cursors (map is locked)";
+           "Replace attempted to tamper with elements (map is locked)";
       end if;
 
       Node.Key := Key;
@@ -784,7 +784,7 @@  package body Ada.Containers.Hashed_Maps 
 
       if Position.Container.HT.Lock > 0 then
          raise Program_Error with
-           "Replace_Element attempted to tamper with cursors (map is locked)";
+           "Replace_Element attempted to tamper with elements (map is locked)";
       end if;
 
       pragma Assert (Vet (Position), "bad cursor in Replace_Element");
Index: a-coorse.adb
===================================================================
--- a-coorse.adb	(revision 164000)
+++ a-coorse.adb	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2010, 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- --
@@ -855,7 +855,7 @@  package body Ada.Containers.Ordered_Sets
       if not Inserted then
          if Container.Tree.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (set is locked)";
+              "attempt to tamper with elements (set is locked)";
          end if;
 
          Position.Node.Element := New_Item;
@@ -1355,7 +1355,7 @@  package body Ada.Containers.Ordered_Sets
 
       if Container.Tree.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (set is locked)";
+           "attempt to tamper with elements (set is locked)";
       end if;
 
       Node.Element := New_Item;
@@ -1405,7 +1405,7 @@  package body Ada.Containers.Ordered_Sets
       Result    : Node_Access;
       Inserted  : Boolean;
 
-      --  Start of processing for Insert
+      --  Start of processing for Replace_Element
 
    begin
       if Item < Node.Element
@@ -1416,7 +1416,7 @@  package body Ada.Containers.Ordered_Sets
       else
          if Tree.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (set is locked)";
+              "attempt to tamper with elements (set is locked)";
          end if;
 
          Node.Element := Item;
@@ -1432,7 +1432,7 @@  package body Ada.Containers.Ordered_Sets
          if Hint = Node then
             if Tree.Lock > 0 then
                raise Program_Error with
-                 "attempt to tamper with cursors (set is locked)";
+                 "attempt to tamper with elements (set is locked)";
             end if;
 
             Node.Element := Item;
Index: a-chtgke.adb
===================================================================
--- a-chtgke.adb	(revision 164000)
+++ a-chtgke.adb	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2010, 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- --
@@ -57,7 +57,7 @@  package body Ada.Containers.Hash_Tables.
       if Equivalent_Keys (Key, X) then
          if HT.Busy > 0 then
             raise Program_Error with
-              "attempt to tamper with elements (container is busy)";
+              "attempt to tamper with cursors (container is busy)";
          end if;
          HT.Buckets (Indx) := Next (X);
          HT.Length := HT.Length - 1;
@@ -75,7 +75,7 @@  package body Ada.Containers.Hash_Tables.
          if Equivalent_Keys (Key, X) then
             if HT.Busy > 0 then
                raise Program_Error with
-                 "attempt to tamper with elements (container is busy)";
+                 "attempt to tamper with cursors (container is busy)";
             end if;
             Set_Next (Node => Prev, Next => Next (X));
             HT.Length := HT.Length - 1;
@@ -130,7 +130,7 @@  package body Ada.Containers.Hash_Tables.
       if B = null then
          if HT.Busy > 0 then
             raise Program_Error with
-              "attempt to tamper with elements (container is busy)";
+              "attempt to tamper with cursors (container is busy)";
          end if;
 
          if HT.Length = Count_Type'Last then
@@ -160,7 +160,7 @@  package body Ada.Containers.Hash_Tables.
 
       if HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (container is busy)";
+           "attempt to tamper with cursors (container is busy)";
       end if;
 
       if HT.Length = Count_Type'Last then
@@ -212,7 +212,7 @@  package body Ada.Containers.Hash_Tables.
 
          if HT.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (container is locked)";
+              "attempt to tamper with elements (container is locked)";
          end if;
 
          --  We can change a node's key to Key (that's what Assign is for), but
@@ -256,7 +256,7 @@  package body Ada.Containers.Hash_Tables.
 
          if HT.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (container is locked)";
+              "attempt to tamper with elements (container is locked)";
          end if;
 
          Assign (Node, Key);
@@ -269,7 +269,7 @@  package body Ada.Containers.Hash_Tables.
 
       if HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (container is busy)";
+           "attempt to tamper with cursors (container is busy)";
       end if;
 
       --  Do the assignment first, before moving the node, so that if Assign
Index: a-chtgop.adb
===================================================================
--- a-chtgop.adb	(revision 164000)
+++ a-chtgop.adb	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2010, 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- --
@@ -132,7 +132,7 @@  package body Ada.Containers.Hash_Tables.
    begin
       if HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (container is busy)";
+           "attempt to tamper with cursors (container is busy)";
       end if;
 
       while HT.Length > 0 loop
@@ -478,7 +478,7 @@  package body Ada.Containers.Hash_Tables.
 
       if Source.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (container is busy)";
+           "attempt to tamper with cursors (container is busy)";
       end if;
 
       Clear (Target);
@@ -619,7 +619,7 @@  package body Ada.Containers.Hash_Tables.
 
       if HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (container is busy)";
+           "attempt to tamper with cursors (container is busy)";
       end if;
 
       Rehash : declare
Index: a-ciorma.adb
===================================================================
--- a-ciorma.adb	(revision 164000)
+++ a-ciorma.adb	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2010, 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- --
@@ -625,7 +625,7 @@  package body Ada.Containers.Indefinite_O
       if not Inserted then
          if Container.Tree.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (map is locked)";
+              "attempt to tamper with elements (map is locked)";
          end if;
 
          K := Position.Node.Key;
@@ -1106,7 +1106,7 @@  package body Ada.Containers.Indefinite_O
 
       if Container.Tree.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (map is locked)";
+           "attempt to tamper with elements (map is locked)";
       end if;
 
       K := Node.Key;
@@ -1155,7 +1155,7 @@  package body Ada.Containers.Indefinite_O
 
       if Container.Tree.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (map is locked)";
+           "attempt to tamper with elements (map is locked)";
       end if;
 
       pragma Assert (Vet (Container.Tree, Position.Node),
Index: a-coormu.adb
===================================================================
--- a-coormu.adb	(revision 164000)
+++ a-coormu.adb	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2010, 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- --
@@ -1481,7 +1481,7 @@  package body Ada.Containers.Ordered_Mult
       else
          if Tree.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (set is locked)";
+              "attempt to tamper with elements (set is locked)";
          end if;
 
          Node.Element := Item;
Index: a-convec.adb
===================================================================
--- a-convec.adb	(revision 164000)
+++ a-convec.adb	(working copy)
@@ -440,7 +440,7 @@  package body Ada.Containers.Vectors is
    begin
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (vector is busy)";
+           "attempt to tamper with cursors (vector is busy)";
       end if;
 
       Container.Last := No_Index;
@@ -524,7 +524,7 @@  package body Ada.Containers.Vectors is
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (vector is busy)";
+           "attempt to tamper with cursors (vector is busy)";
       end if;
 
       --  We first calculate what's available for deletion starting at
@@ -653,7 +653,7 @@  package body Ada.Containers.Vectors is
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (vector is busy)";
+           "attempt to tamper with cursors (vector is busy)";
       end if;
 
       --  There is no restriction on how large Count can be when deleting
@@ -717,7 +717,7 @@  package body Ada.Containers.Vectors is
    begin
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (vector is busy)";
+           "attempt to tamper with cursors (vector is busy)";
       end if;
 
       Container.Elements := null;
@@ -862,7 +862,7 @@  package body Ada.Containers.Vectors is
 
          if Source.Busy > 0 then
             raise Program_Error with
-              "attempt to tamper with elements (vector is busy)";
+              "attempt to tamper with cursors (vector is busy)";
          end if;
 
          Target.Set_Length (Length (Target) + Length (Source));
@@ -923,7 +923,7 @@  package body Ada.Containers.Vectors is
 
          if Container.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (vector is locked)";
+              "attempt to tamper with elements (vector is locked)";
          end if;
 
          Sort (Container.Elements.EA (Index_Type'First .. Container.Last));
@@ -1147,7 +1147,7 @@  package body Ada.Containers.Vectors is
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (vector is busy)";
+           "attempt to tamper with cursors (vector is busy)";
       end if;
 
       --  An internal array has already been allocated, so we must determine
@@ -1802,7 +1802,7 @@  package body Ada.Containers.Vectors is
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (vector is busy)";
+           "attempt to tamper with cursors (vector is busy)";
       end if;
 
       --  An internal array has already been allocated, so we must determine
@@ -2102,12 +2102,12 @@  package body Ada.Containers.Vectors is
 
       if Target.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (Target is busy)";
+           "attempt to tamper with cursors (Target is busy)";
       end if;
 
       if Source.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (Source is busy)";
+           "attempt to tamper with cursors (Source is busy)";
       end if;
 
       declare
@@ -2303,7 +2303,7 @@  package body Ada.Containers.Vectors is
 
       if Container.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (vector is locked)";
+           "attempt to tamper with elements (vector is locked)";
       end if;
 
       Container.Elements.EA (Index) := New_Item;
@@ -2329,7 +2329,7 @@  package body Ada.Containers.Vectors is
 
       if Container.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (vector is locked)";
+           "attempt to tamper with elements (vector is locked)";
       end if;
 
       Container.Elements.EA (Position.Index) := New_Item;
@@ -2392,7 +2392,7 @@  package body Ada.Containers.Vectors is
 
             if Container.Busy > 0 then
                raise Program_Error with
-                 "attempt to tamper with elements (vector is busy)";
+                 "attempt to tamper with cursors (vector is busy)";
             end if;
 
             declare
@@ -2527,7 +2527,7 @@  package body Ada.Containers.Vectors is
 
             if Container.Busy > 0 then
                raise Program_Error with
-                 "attempt to tamper with elements (vector is busy)";
+                 "attempt to tamper with cursors (vector is busy)";
             end if;
 
             declare
@@ -2586,7 +2586,7 @@  package body Ada.Containers.Vectors is
 
       if Container.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (vector is busy)";
+           "attempt to tamper with cursors (vector is busy)";
       end if;
 
       --  We now allocate a new internal array, having a length different from
@@ -2649,7 +2649,7 @@  package body Ada.Containers.Vectors is
 
       if Container.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (vector is locked)";
+           "attempt to tamper with elements (vector is locked)";
       end if;
 
       declare
@@ -2801,7 +2801,7 @@  package body Ada.Containers.Vectors is
 
       if Container.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (vector is locked)";
+           "attempt to tamper with elements (vector is locked)";
       end if;
 
       declare
Index: a-cohase.adb
===================================================================
--- a-cohase.adb	(revision 164000)
+++ a-cohase.adb	(working copy)
@@ -6,7 +6,7 @@ 
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2004-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 2004-2010, 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- --
@@ -230,7 +230,7 @@  package body Ada.Containers.Hashed_Sets 
 
       if Container.HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (set is busy)";
+           "attempt to tamper with cursors (set is busy)";
       end if;
 
       pragma Assert (Vet (Position), "bad cursor in Delete");
@@ -263,7 +263,7 @@  package body Ada.Containers.Hashed_Sets 
 
       if Target.HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (set is busy)";
+           "attempt to tamper with cursors (set is busy)";
       end if;
 
       if Source.HT.Length < Target.HT.Length then
@@ -614,7 +614,7 @@  package body Ada.Containers.Hashed_Sets 
       if not Inserted then
          if Container.HT.Lock > 0 then
             raise Program_Error with
-              "attempt to tamper with cursors (set is locked)";
+              "attempt to tamper with elements (set is locked)";
          end if;
 
          Position.Node.Element := New_Item;
@@ -713,7 +713,7 @@  package body Ada.Containers.Hashed_Sets 
 
       if Target.HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (set is busy)";
+           "attempt to tamper with cursors (set is busy)";
       end if;
 
       Tgt_Node := HT_Ops.First (Target.HT);
@@ -1059,7 +1059,7 @@  package body Ada.Containers.Hashed_Sets 
 
       if Container.HT.Lock > 0 then
          raise Program_Error with
-           "attempt to tamper with cursors (set is locked)";
+           "attempt to tamper with elements (set is locked)";
       end if;
 
       Node.Element := New_Item;
@@ -1123,7 +1123,7 @@  package body Ada.Containers.Hashed_Sets 
 
       if Target.HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (set is busy)";
+           "attempt to tamper with cursors (set is busy)";
       end if;
 
       declare
@@ -1392,7 +1392,7 @@  package body Ada.Containers.Hashed_Sets 
 
       if Target.HT.Busy > 0 then
          raise Program_Error with
-           "attempt to tamper with elements (set is busy)";
+           "attempt to tamper with cursors (set is busy)";
       end if;
 
       declare