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=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.4 X-Google-Thread: 103376,44ada043789a561c X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!news.glorb.com!proxad.net!usenet-fr.net!news.enst.fr!melchior!cuivre.fr.eu.org!melchior.frmug.org!not-for-mail From: "Anh Vo" Newsgroups: comp.lang.ada Subject: Re: Memory_Management Date: Tue, 19 Apr 2005 15:30:52 -0500 Organization: Cuivre, Argent, Or Message-ID: NNTP-Posting-Host: lovelace.ada-france.org Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable X-Trace: melchior.cuivre.fr.eu.org 1113942677 88157 212.85.156.195 (19 Apr 2005 20:31:17 GMT) X-Complaints-To: usenet@melchior.cuivre.fr.eu.org NNTP-Posting-Date: Tue, 19 Apr 2005 20:31:17 +0000 (UTC) Cc: comp.lang.ada@ada-france.org To: , Return-Path: X-Mailer: Novell GroupWise Internet Agent 6.5.4 Content-Disposition: inline X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at ada-france.org X-BeenThere: comp.lang.ada@ada-france.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Gateway to the comp.lang.ada Usenet newsgroup" List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Xref: g2news1.google.com comp.lang.ada:10582 Date: 2005-04-19T15:30:52-05:00 Or may be the intention was to allocate the memory for component Value of = I1 and I2. If this is the case, allocate and assign to Value as shown = below. Then, the results should be printed out as expected. I1.Value :=3D new Integer' (123); I2.Value :=3D new Integer' (456); By the way, I am the author of the Memory Management. I do have a new and = improved version of Memory Management. In addition, I have change the name = to Storage Pool Handler. If any one is interested, please let me know with = an private email. I will sent it to you. AV >>> Duncan Sands 04/19/05 2:18 AM >>> Hi Bini, maybe what is happening is this: > I1 :=3D (AF.Controlled with Value =3D> new Integer'(123)); here the right-hand-side (RHS) is an object of My_Data type. You assign it to I1, another object of My_Data type. After the assignment, RHS is finalized. This frees the memory - the same memory I1.Value is pointing to. In detail: (0) Memory is allocated to hold the integer 123. A pointer to the memory is in RHS.Value. (1) a bit-wise copy is made of RHS onto I1. I1.Value points to the integer. (2) Adjust is called on I1. Since you don't seem to have defined Adjust, this does nothing. (3) Finalize is called on RHS. This frees the memory holding 123. Now I1.Value is pointing to freed memory. You then look at I1.Value.all, which could be anything. You need to define Adjust.