[Ada] Replace in Ordered_Maps gets tampering failure
authorBob Duff <duff@adacore.com>
Thu, 10 Oct 2019 15:23:08 +0000 (15:23 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 10 Oct 2019 15:23:08 +0000 (15:23 +0000)
2019-10-10  Bob Duff  <duff@adacore.com>

gcc/ada/

* libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb,
libgnat/a-cborma.adb, libgnat/a-cborse.adb,
libgnat/a-cdlili.adb, libgnat/a-cidlli.adb,
libgnat/a-cihama.adb, libgnat/a-cihase.adb,
libgnat/a-cimutr.adb, libgnat/a-ciorma.adb,
libgnat/a-ciorse.adb, libgnat/a-cobove.adb,
libgnat/a-cohama.adb, libgnat/a-cohase.adb,
libgnat/a-coinve.adb, libgnat/a-comutr.adb,
libgnat/a-conhel.adb, libgnat/a-convec.adb,
libgnat/a-coorma.adb, libgnat/a-coorse.adb (Reference,
Constant_Reference): Use Busy instead of Lock, so we forbid
tampering with cursors, rather than tampering with elements.

From-SVN: r276813

23 files changed:
gcc/ada/ChangeLog
gcc/ada/libgnat/a-cbdlli.adb
gcc/ada/libgnat/a-cbhama.adb
gcc/ada/libgnat/a-cbhase.adb
gcc/ada/libgnat/a-cbmutr.adb
gcc/ada/libgnat/a-cborma.adb
gcc/ada/libgnat/a-cborse.adb
gcc/ada/libgnat/a-cdlili.adb
gcc/ada/libgnat/a-cidlli.adb
gcc/ada/libgnat/a-cihama.adb
gcc/ada/libgnat/a-cihase.adb
gcc/ada/libgnat/a-cimutr.adb
gcc/ada/libgnat/a-ciorma.adb
gcc/ada/libgnat/a-ciorse.adb
gcc/ada/libgnat/a-cobove.adb
gcc/ada/libgnat/a-cohama.adb
gcc/ada/libgnat/a-cohase.adb
gcc/ada/libgnat/a-coinve.adb
gcc/ada/libgnat/a-comutr.adb
gcc/ada/libgnat/a-conhel.adb
gcc/ada/libgnat/a-convec.adb
gcc/ada/libgnat/a-coorma.adb
gcc/ada/libgnat/a-coorse.adb

index 50654f060461495b5e28dd1dd1e0e25ec4e612d9..745c7b57b164762310fe15aa99233c4b35758fce 100644 (file)
@@ -1,6 +1,15 @@
-2019-10-10  Ed Schonberg  <schonberg@adacore.com>
+2019-10-10  Bob Duff  <duff@adacore.com>
 
-       * sem_cat.adb (Set_Categorization_From_Pragma): Do not modify
-       any visibility settings if there are no compilation_unit pragmas
-       following the package declaration. Add comments for future
-       cleanup.
\ No newline at end of file
+       * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
+       libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb,
+       libgnat/a-cborma.adb, libgnat/a-cborse.adb,
+       libgnat/a-cdlili.adb, libgnat/a-cidlli.adb,
+       libgnat/a-cihama.adb, libgnat/a-cihase.adb,
+       libgnat/a-cimutr.adb, libgnat/a-ciorma.adb,
+       libgnat/a-ciorse.adb, libgnat/a-cobove.adb,
+       libgnat/a-cohama.adb, libgnat/a-cohase.adb,
+       libgnat/a-coinve.adb, libgnat/a-comutr.adb,
+       libgnat/a-conhel.adb, libgnat/a-convec.adb,
+       libgnat/a-coorma.adb, libgnat/a-coorse.adb (Reference,
+       Constant_Reference): Use Busy instead of Lock, so we forbid
+       tampering with cursors, rather than tampering with elements.
\ No newline at end of file
index 4dea2e64d2fc794c2302d205d16489ff4deba720..9a2282b2d8553a5f48d7ee24fa3dff534fab47da 100644 (file)
@@ -304,7 +304,7 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
            (Element => N.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -1448,7 +1448,7 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
       TC : constant Tamper_Counts_Access := Container.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -1564,7 +1564,7 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
            (Element => N.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index 74e3d95748a6222470407ecab18163d983204bb3..d5cc8206222be7b42c74961b28dbbf6b2bcc4b85 100644 (file)
@@ -213,7 +213,7 @@ package body Ada.Containers.Bounded_Hashed_Maps is
            (Element => N.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -239,7 +239,7 @@ package body Ada.Containers.Bounded_Hashed_Maps is
            (Element => N.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -853,7 +853,7 @@ package body Ada.Containers.Bounded_Hashed_Maps is
         Container.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -987,7 +987,7 @@ package body Ada.Containers.Bounded_Hashed_Maps is
            (Element => N.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
@@ -1012,7 +1012,7 @@ package body Ada.Containers.Bounded_Hashed_Maps is
            (Element => N.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index 390e82bb48543f006178c4075daa87956fc72591..1fa2c21c00d81519e2c3599b9cbd4adeda4ef106 100644 (file)
@@ -231,7 +231,7 @@ package body Ada.Containers.Bounded_Hashed_Sets is
            (Element => N.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -1077,7 +1077,7 @@ package body Ada.Containers.Bounded_Hashed_Sets is
         Container.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -1606,7 +1606,7 @@ package body Ada.Containers.Bounded_Hashed_Sets is
               (Element => N.Element'Access,
                Control => (Controlled with TC))
             do
-               Lock (TC.all);
+               Busy (TC.all);
             end return;
          end;
       end Constant_Reference;
@@ -1787,7 +1787,7 @@ package body Ada.Containers.Bounded_Hashed_Sets is
                      Old_Pos  => Position,
                      Old_Hash => Hash (Key (Position))))
             do
-               Lock (Container.TC);
+               Busy (Container.TC);
             end return;
          end;
       end Reference_Preserving_Key;
@@ -1816,7 +1816,7 @@ package body Ada.Containers.Bounded_Hashed_Sets is
                     Old_Pos => P,
                     Old_Hash => Hash (Key)))
             do
-               Lock (Container.TC);
+               Busy (Container.TC);
             end return;
          end;
       end Reference_Preserving_Key;
index 4c0f8fe1c297ae0d1ab1269e7b7c3cadb8472992..ad9edaaa142567691775d495cd05798cfe55f4fc 100644 (file)
@@ -600,7 +600,7 @@ package body Ada.Containers.Bounded_Multiway_Trees is
            (Element => Container.Elements (Position.Node)'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -2291,7 +2291,7 @@ package body Ada.Containers.Bounded_Multiway_Trees is
       TC : constant Tamper_Counts_Access := Container.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -2490,7 +2490,7 @@ package body Ada.Containers.Bounded_Multiway_Trees is
            (Element => Container.Elements (Position.Node)'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index e4e4b57dc7282e1e86eb9ed7911611b8dcef18ee..005bca5d0c2ca1ddbcef78667933b7fe208fade0 100644 (file)
@@ -420,7 +420,7 @@ package body Ada.Containers.Bounded_Ordered_Maps is
            (Element => N.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -445,7 +445,7 @@ package body Ada.Containers.Bounded_Ordered_Maps is
            (Element => N.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -1256,7 +1256,7 @@ package body Ada.Containers.Bounded_Ordered_Maps is
         Container.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -1376,7 +1376,7 @@ package body Ada.Containers.Bounded_Ordered_Maps is
            (Element => N.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
@@ -1401,7 +1401,7 @@ package body Ada.Containers.Bounded_Ordered_Maps is
            (Element => N.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index 7b983781e60b0dbf431f7d32f436ee496ecad678..b55304810b986ecf3ec6d646f13652707b426fb8 100644 (file)
@@ -420,7 +420,7 @@ package body Ada.Containers.Bounded_Ordered_Sets is
            (Element => N.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -741,7 +741,7 @@ package body Ada.Containers.Bounded_Ordered_Sets is
               (Element => N.Element'Access,
                Control => (Controlled with TC))
             do
-               Lock (TC.all);
+               Busy (TC.all);
             end return;
          end;
       end Constant_Reference;
@@ -937,7 +937,7 @@ package body Ada.Containers.Bounded_Ordered_Sets is
                               Pos       => Position,
                               Old_Key   => new Key_Type'(Key (Position))))
             do
-               Lock (Container.TC);
+               Busy (Container.TC);
             end return;
          end;
       end Reference_Preserving_Key;
@@ -965,7 +965,7 @@ package body Ada.Containers.Bounded_Ordered_Sets is
                                Pos      => Find (Container, Key),
                                Old_Key  => new Key_Type'(Key)))
             do
-               Lock (Container.TC);
+               Busy (Container.TC);
             end return;
          end;
       end Reference_Preserving_Key;
@@ -1598,7 +1598,7 @@ package body Ada.Containers.Bounded_Ordered_Sets is
         Container.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
index 9122d574d4fafd617929bfc29ffe79698098dc2b..949fb0f5dac1b63d2dc0f562da2c04346b70416a 100644 (file)
@@ -255,7 +255,7 @@ package body Ada.Containers.Doubly_Linked_Lists is
            (Element => Position.Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -1226,7 +1226,7 @@ package body Ada.Containers.Doubly_Linked_Lists is
       TC : constant Tamper_Counts_Access := Container.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -1357,7 +1357,7 @@ package body Ada.Containers.Doubly_Linked_Lists is
            (Element => Position.Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index fd480457395716001e236a6a37dbb0a3cb47e961..65e4c10fceefc6a2af6629dafdf82e3b1443a838 100644 (file)
@@ -280,7 +280,7 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
            (Element => Position.Node.Element,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -1263,7 +1263,7 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
       TC : constant Tamper_Counts_Access := Container.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -1405,7 +1405,7 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
            (Element => Position.Node.Element,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index 0971a006ea953263a2dce0f7e5339621447d16c4..b33246d3546928850ee0be42972217e0d8b315e2 100644 (file)
@@ -220,7 +220,7 @@ package body Ada.Containers.Indefinite_Hashed_Maps is
            (Element => Position.Node.Element.all'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -249,7 +249,7 @@ package body Ada.Containers.Indefinite_Hashed_Maps is
            (Element => Node.Element.all'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -911,7 +911,7 @@ package body Ada.Containers.Indefinite_Hashed_Maps is
         Container.HT.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -1057,7 +1057,7 @@ package body Ada.Containers.Indefinite_Hashed_Maps is
            (Element => Position.Node.Element.all'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
@@ -1086,7 +1086,7 @@ package body Ada.Containers.Indefinite_Hashed_Maps is
            (Element => Node.Element.all'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index ce158d2ab420063f4c644047d8fee6403b5226d9..bec48d06e6fafdb7d840835ce5002a453e2bd900 100644 (file)
@@ -239,7 +239,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is
            (Element => Position.Node.Element.all'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -1229,7 +1229,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is
         Container.HT.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -2044,7 +2044,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is
               (Element => Node.Element.all'Access,
                Control => (Controlled with TC))
             do
-               Lock (TC.all);
+               Busy (TC.all);
             end return;
          end;
       end Constant_Reference;
@@ -2232,7 +2232,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is
                               Old_Pos   => Position,
                               Old_Hash  => Hash (Key (Position))))
             do
-               Lock (HT.TC);
+               Busy (HT.TC);
             end return;
          end;
       end Reference_Preserving_Key;
@@ -2266,7 +2266,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is
                               Old_Pos   => P,
                               Old_Hash  => Hash (Key)))
             do
-               Lock (HT.TC);
+               Busy (HT.TC);
             end return;
          end;
       end Reference_Preserving_Key;
index 18bfff07308d6ed42cc617ce48a5c1f601ef7c36..c5cf22120966ab3b2e0e8b0a1c0252e83b9e2669 100644 (file)
@@ -488,7 +488,7 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
            (Element => Position.Node.Element.all'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -1847,7 +1847,7 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
       TC : constant Tamper_Counts_Access := Container.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -2044,7 +2044,7 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
            (Element => Position.Node.Element.all'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index 5cc35908e8f47aad9fab2c271ee50dec40bbb26f..818a2ae0f60b56a7379d9c7f5624d05f892b7af7 100644 (file)
@@ -374,7 +374,7 @@ package body Ada.Containers.Indefinite_Ordered_Maps is
            (Element => Position.Node.Element.all'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -402,7 +402,7 @@ package body Ada.Containers.Indefinite_Ordered_Maps is
            (Element => Node.Element.all'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -1250,7 +1250,7 @@ package body Ada.Containers.Indefinite_Ordered_Maps is
         Container.Tree.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -1387,7 +1387,7 @@ package body Ada.Containers.Indefinite_Ordered_Maps is
            (Element => Position.Node.Element.all'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
@@ -1415,7 +1415,7 @@ package body Ada.Containers.Indefinite_Ordered_Maps is
            (Element => Node.Element.all'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index d979e88db2e1eed8bc565b64acb70ee402087c6e..7cc7dca87cd3b2622e4e164215d9b7c70ed1e061 100644 (file)
@@ -394,7 +394,7 @@ package body Ada.Containers.Indefinite_Ordered_Sets is
            (Element => Position.Node.Element.all'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -788,7 +788,7 @@ package body Ada.Containers.Indefinite_Ordered_Sets is
               (Element => Node.Element.all'Access,
                Control => (Controlled with TC))
             do
-               Lock (TC.all);
+               Busy (TC.all);
             end return;
          end;
       end Constant_Reference;
@@ -1017,7 +1017,7 @@ package body Ada.Containers.Indefinite_Ordered_Sets is
                     Pos       => Position,
                     Old_Key   => new Key_Type'(Key (Position))))
          do
-               Lock (Tree.TC);
+               Busy (Tree.TC);
             end return;
          end;
       end Reference_Preserving_Key;
@@ -1049,7 +1049,7 @@ package body Ada.Containers.Indefinite_Ordered_Sets is
                     Pos       => Find (Container, Key),
                     Old_Key   => new Key_Type'(Key)))
             do
-               Lock (Tree.TC);
+               Busy (Tree.TC);
             end return;
          end;
       end Reference_Preserving_Key;
@@ -1688,7 +1688,7 @@ package body Ada.Containers.Indefinite_Ordered_Sets is
         Container.Tree.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
index 3e48bc60e8ab6ba412f9a7e19a69aa6f74dcf8c9..75087949af8a86c06b4b619a9e2a333918a04b16 100644 (file)
@@ -402,7 +402,7 @@ package body Ada.Containers.Bounded_Vectors is
            (Element => A (J)'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -426,7 +426,7 @@ package body Ada.Containers.Bounded_Vectors is
            (Element => A (J)'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -2067,7 +2067,7 @@ package body Ada.Containers.Bounded_Vectors is
       TC : constant Tamper_Counts_Access := Container.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -2183,7 +2183,7 @@ package body Ada.Containers.Bounded_Vectors is
            (Element => A (J)'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
@@ -2207,7 +2207,7 @@ package body Ada.Containers.Bounded_Vectors is
            (Element => A (J)'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index 0eb6e7ea315946f9674b90f9c9b3801aef37f5e7..e7da0204af880715e656bdc6deefc5770c4607a2 100644 (file)
@@ -213,7 +213,7 @@ package body Ada.Containers.Hashed_Maps is
            (Element => Position.Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -238,7 +238,7 @@ package body Ada.Containers.Hashed_Maps is
            (Element => Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -836,7 +836,7 @@ package body Ada.Containers.Hashed_Maps is
         Container.HT.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -937,7 +937,7 @@ package body Ada.Containers.Hashed_Maps is
            (Element => Position.Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
@@ -962,7 +962,7 @@ package body Ada.Containers.Hashed_Maps is
            (Element => Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index 37e55b80229fd8e3fba5897f1e10242b0d8b277b..61ebf87d2f1130b2676369bd18ca92d4e6ab460e 100644 (file)
@@ -223,7 +223,7 @@ package body Ada.Containers.Hashed_Sets is
            (Element => Position.Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -1119,7 +1119,7 @@ package body Ada.Containers.Hashed_Sets is
         Container.HT.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -1839,7 +1839,7 @@ package body Ada.Containers.Hashed_Sets is
               (Element => Node.Element'Access,
                Control => (Controlled with TC))
             do
-               Lock (TC.all);
+               Busy (TC.all);
             end return;
          end;
       end Constant_Reference;
@@ -2025,7 +2025,7 @@ package body Ada.Containers.Hashed_Sets is
                               Old_Pos  => Position,
                               Old_Hash => Hash (Key (Position))))
             do
-               Lock (HT.TC);
+               Busy (HT.TC);
             end return;
          end;
       end Reference_Preserving_Key;
@@ -2055,7 +2055,7 @@ package body Ada.Containers.Hashed_Sets is
                               Old_Pos  => P,
                               Old_Hash => Hash (Key)))
             do
-               Lock (HT.TC);
+               Busy (HT.TC);
             end return;
          end;
       end Reference_Preserving_Key;
index 22608c17c650230f836a36a78cad8b44914bc917..0dfe1c63e892095391e220d22706a5022f0e597e 100644 (file)
@@ -324,7 +324,7 @@ package body Ada.Containers.Indefinite_Vectors is
            (Element => Container.Elements.EA (Position.Index),
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -348,7 +348,7 @@ package body Ada.Containers.Indefinite_Vectors is
            (Element => Container.Elements.EA (Index),
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -2586,7 +2586,7 @@ package body Ada.Containers.Indefinite_Vectors is
       TC : constant Tamper_Counts_Access := Container.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -2718,7 +2718,7 @@ package body Ada.Containers.Indefinite_Vectors is
            (Element => Container.Elements.EA (Position.Index),
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
@@ -2742,7 +2742,7 @@ package body Ada.Containers.Indefinite_Vectors is
            (Element => Container.Elements.EA (Index),
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index 59ed12b8f56c33674b4ce5e6a48e023732e6c842..9e6a00e8e3ba4fb2b3a2aa66bdf52ee06de2c3f1 100644 (file)
@@ -469,7 +469,7 @@ package body Ada.Containers.Multiway_Trees is
            (Element => Position.Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -1830,7 +1830,7 @@ package body Ada.Containers.Multiway_Trees is
       TC : constant Tamper_Counts_Access := Container.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -2023,7 +2023,7 @@ package body Ada.Containers.Multiway_Trees is
            (Element => Position.Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index 29085300f39d8d85b547a5b62e0d335427376724..06af0dabf7e63fe16e26cc2602275b03576d80ac 100644 (file)
@@ -38,7 +38,7 @@ package body Ada.Containers.Helpers is
       procedure Adjust (Control : in out Reference_Control_Type) is
       begin
          if Control.T_Counts /= null then
-            Lock (Control.T_Counts.all);
+            Busy (Control.T_Counts.all);
          end if;
       end Adjust;
 
@@ -60,7 +60,7 @@ package body Ada.Containers.Helpers is
       procedure Finalize (Control : in out Reference_Control_Type) is
       begin
          if Control.T_Counts /= null then
-            Unlock (Control.T_Counts.all);
+            Unbusy (Control.T_Counts.all);
             Control.T_Counts := null;
          end if;
       end Finalize;
index e15ab5d06a82ec7edb165465eada8e031dc2d10d..f5e2eb4228736026e37037b57fb6343c893b0f9b 100644 (file)
@@ -294,7 +294,7 @@ package body Ada.Containers.Vectors is
            (Element => Container.Elements.EA (Position.Index)'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -316,7 +316,7 @@ package body Ada.Containers.Vectors is
            (Element => Container.Elements.EA (Index)'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -2293,7 +2293,7 @@ package body Ada.Containers.Vectors is
       TC : constant Tamper_Counts_Access := Container.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -2409,7 +2409,7 @@ package body Ada.Containers.Vectors is
            (Element => Container.Elements.EA (Position.Index)'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
@@ -2431,7 +2431,7 @@ package body Ada.Containers.Vectors is
            (Element => Container.Elements.EA (Index)'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index 8275802ccd9a1eab80a7aa4d40b0a0a4358b21d3..e49ae902476365e28cae825acae6363602ebbae4 100644 (file)
@@ -336,7 +336,7 @@ package body Ada.Containers.Ordered_Maps is
            (Element => Position.Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -361,7 +361,7 @@ package body Ada.Containers.Ordered_Maps is
            (Element => Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -1180,7 +1180,7 @@ package body Ada.Containers.Ordered_Maps is
         Container.Tree.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;
 
@@ -1307,7 +1307,7 @@ package body Ada.Containers.Ordered_Maps is
            (Element => Position.Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
@@ -1332,7 +1332,7 @@ package body Ada.Containers.Ordered_Maps is
            (Element => Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Reference;
index 462f7f30e6aa09259fa4347d7ce872860622f0da..d2f8a58f91075245f0805c2c87e3ff079ff082d5 100644 (file)
@@ -349,7 +349,7 @@ package body Ada.Containers.Ordered_Sets is
            (Element => Position.Node.Element'Access,
             Control => (Controlled with TC))
          do
-            Lock (TC.all);
+            Busy (TC.all);
          end return;
       end;
    end Constant_Reference;
@@ -706,7 +706,7 @@ package body Ada.Containers.Ordered_Sets is
               (Element => Node.Element'Access,
                Control => (Controlled with TC))
             do
-               Lock (TC.all);
+               Busy (TC.all);
             end return;
          end;
       end Constant_Reference;
@@ -903,7 +903,7 @@ package body Ada.Containers.Ordered_Sets is
                      Pos       => Position,
                      Old_Key   => new Key_Type'(Key (Position))))
             do
-               Lock (Tree.TC);
+               Busy (Tree.TC);
             end return;
          end;
       end Reference_Preserving_Key;
@@ -931,7 +931,7 @@ package body Ada.Containers.Ordered_Sets is
                      Pos       => Find (Container, Key),
                      Old_Key   => new Key_Type'(Key)))
             do
-               Lock (Tree.TC);
+               Busy (Tree.TC);
             end return;
          end;
       end Reference_Preserving_Key;
@@ -1550,7 +1550,7 @@ package body Ada.Containers.Ordered_Sets is
         Container.Tree.TC'Unrestricted_Access;
    begin
       return R : constant Reference_Control_Type := (Controlled with TC) do
-         Lock (TC.all);
+         Busy (TC.all);
       end return;
    end Pseudo_Reference;