CVS difference for ais/ai-00280.txt
--- ais/ai-00280.txt 2004/02/21 04:15:09 1.5
+++ ais/ai-00280.txt 2004/07/27 23:00:52 1.6
@@ -1,6 +1,8 @@
!standard 9.04 (20) 03-02-19 AI95-00280/03
!standard 4.08 (11)
!class binding interpretation 01-12-21
+!status Amendment 200Y 04-07-02
+!status ARG Approved 8-0-0 04-06-17
!status work item 01-12-21
!status received 01-12-04
!qualifier Omission
@@ -175,34 +177,29 @@
for dependent tasks raises Program_Error. Otherwise, the task would never
be waited for.
+
!corrigendum 04.08(11)
-@dinsb
-If the created object contains any tasks, they are activated (see 9.2).
-Finally, an access value that designates the created object is returned.
-@dinss
+@drepl
If the created object contains any tasks, they are activated (see 9.2).
Finally, an access value that designates the created object is returned.
+@dby
If the created object contains any tasks, and the master of the type
of the @fa<allocator> has finished waiting for dependent tasks (see 9.3),
Program_Error is raised.
+If the created object contains any tasks, they are activated (see 9.2).
+Finally, an access value that designates the created object is returned.
+
If the object created by the @fa<allocator> has a controlled or protected part,
and the finalization of the collection of the type of the allocator (see 7.6.1)
has started, Program_Error is raised.
-!corrigendum 04.08(11)
-
-@dinsa
-If the created object contains any tasks, they are activated (see 9.2).
-Finally, an access value that designates the created object is returned.
-@dinst
-@s8<@i<Bounded (Run-Time) Errors>>@hr
+@s8<@i<Bounded (Run-Time) Errors>>
It is a bounded error if the finalization of the collection of the type
(see 7.6.1) of the @fa<allocator> has started. If the error is detected,
-Program_Error is raised. Otherwise, the allocation proceeds normally; when
-the object is finalized (or if it ever is) is unspecified.
+Program_Error is raised. Otherwise, the allocation proceeds normally.
!corrigendum 07.06.01(11)
@@ -217,13 +214,12 @@
@dby
The order in which the finalization of a master performs finalization of
objects is as follows: Objects created by declarations in the master are
-finalized in the reverse order of their creation. At the first freezing
-point (see 13.14) of an access type declared in the master which is not the
-descendant of any other type, @i<finalization of the collection> of the type
-is started for the access type and all of its descendants. During finalization
-of the collection, each object that still exists that was created by
-an @fa<allocator> for the access type or one of its descendants is finalized
-in an arbitrary order.
+finalized in the reverse order of their creation. For objects that were
+created by @fa<allocator>s for an access type whose ultimate ancestor is
+declared in the master, this rule is applied as though each such object that
+still exists had been created in an arbitrary order at the first freezing
+point (see 13.14) of the ultimate ancestor type; the finalization of these
+objects is called the @i<finalization of the collection>.
!corrigendum 09.04(20)
Questions? Ask the ACAA Technical Agent