comp.lang.ada
 help / color / mirror / Atom feed
From: Tucker Taft <stt@averstar.com>
Subject: Re: Order of subcomponent finalization
Date: 1999/03/16
Date: 1999-03-16T00:00:00+00:00	[thread overview]
Message-ID: <36EEC9E1.EFF31ECB@averstar.com> (raw)
In-Reply-To: 7cmcu3$o7g$1@nnrp1.dejanews.com

adam@irvine.com wrote:
> 
> Suppose a record type and an object of that type are declared:
> 
> procedure Subp is
> 
>     type Rectype is record
>         Component_1 : Controlled_Type_1;
>         Component_2 : Controlled_Type_2;
>     end record;
> 
>     R : Rectype;
> 
> begin
> ...
> end Subp;
> 
> where Controlled_Type_1 and Controlled_Type_2 are controlled types (duh).
> 
> According to 7.6(12), R.Component_1 and R.Component_2 are initialized
> in arbitrary order (since neither one has an access discriminant
> constrained by a per-object expression).  But does the RM specify in
> which order the components are finalized when Subp exits?  7.6.1(9)
> says similarly that the components of a composite type are finalized
> in arbitrary order; but 7.6.1(11) says that objects created by
> declarations in a master (in this case Subp) are finalized in the
> reverse order of their creation, and 3.3(12) says that R.Component_1
> and R.Component_2 are objects (although whether they count as "objects
> created by a declaration is unclear to me, especially after reading
> 3.3.1(16-19)).  So would 7.6.1(11) imply that R.Component_1 and
> R.Component_2 be finalized in the reverse order in which they were
> initialized (in apparent contradiction to 7.6.1(9))?

This is admittedly a bit unclear.  The intent is that
components can be finalized in any order, so long as they
don't have access to one another via access discriminants.

In the Annotated Ada RM, the "to-be-honest" given in 7.6.1(4.c)
indicates that only "top level" (non-component) objects are 
(directly) finalized as part of finalizing a master, while the 
subcomponents  are finalized as part of finalizing their enclosing 
object.

>                                 -- thanks, Adam

-- 
-Tucker Taft   stt@averstar.com   http://www.averstar.com/~stt/
Technical Director, Distributed IT Solutions  (www.averstar.com/tools)
AverStar (formerly Intermetrics, Inc.)   Burlington, MA  USA




      reply	other threads:[~1999-03-16  0:00 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-03-16  0:00 Order of subcomponent finalization adam
1999-03-16  0:00 ` Tucker Taft [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox