From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,b550c25b7ecf7e27 X-Google-Attributes: gid103376,public From: Tom Moran Subject: Re: Adjust bug? re-post Date: 1997/07/19 Message-ID: <33D1A827.61A7@bix.com>#1/1 X-Deja-AN: 257808110 References: <33D11675.2FDB@bix.com> Organization: InterNex Information Services 1-800-595-3333 Reply-To: tmoran@bix.com Newsgroups: comp.lang.ada Date: 1997-07-19T00:00:00+00:00 List-Id: Robert Dewar said: > This seems obviously legal, and I don't see why you consider it unfortunate. type Things is new Ada.Finalization.Controlled with private; procedure Initialize(x:in out Things); procedure Adjust(x:in out Things); procedure Finalize(x:in out Things); type self_access is access all Things; private type Things is new Ada.Finalization.Controlled with record Myself : self_access; end record; ... If both Initialize and Adjust do x.myself := x'unchecked_access; then, since Finalize can never assume that Initialize or Adjust has ever been performed on the object, Finalize can not assume that x.myself = x'unchecked_access This certainly makes it harder to include Things in linked data structures, and I consider that unfortunate.