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,FREEMAIL_FROM, MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.4 X-Google-Thread: 103376,ec2a500cce3658c4 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII Path: g2news1.google.com!news2.google.com!proxad.net!usenet-fr.net!enst.fr!melchior!cuivre.fr.eu.org!melchior.frmug.org!not-for-mail From: Marius Amado Alves Newsgroups: comp.lang.ada Subject: Re: Memory leak - What the ...? Date: Tue, 12 Oct 2004 13:31:38 +0100 Organization: Cuivre, Argent, Or Message-ID: References: NNTP-Posting-Host: lovelace.ada-france.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Trace: melchior.cuivre.fr.eu.org 1097584315 79602 212.85.156.195 (12 Oct 2004 12:31:55 GMT) X-Complaints-To: usenet@melchior.cuivre.fr.eu.org NNTP-Posting-Date: Tue, 12 Oct 2004 12:31:55 +0000 (UTC) To: comp.lang.ada@ada-france.org Return-Path: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en In-Reply-To: X-OriginalArrivalTime: 12 Oct 2004 12:31:27.0324 (UTC) FILETIME=[64D069C0:01C4B057] 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.4 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:5090 Date: 2004-10-12T13:31:38+01:00 Jean-Pierre Rosen wrote: > Marius Amado Alves a �crit : > >> >> Jean-Pierre Rosen wrote: >> >> I still lack an understandable explanation of why this does not leak: >> >> if This.Data /= null then >> This.Data := new Stream_Element_Array'(This.Data.all); >> end if; >> > Because the original data was declared as a field of an aggregate. When > this aggregate gets finalized, the corresponding data is freed. Not the reason in the conclusion by the original poster, based on the discussion, that "this code is only valid because we are talking about an Adjust procedure of a Controlled type." Either explanation is hardly understandable still. Thanks anyway. I guess now I have something more concrete to chew on. I'll start by trying to locate the "original data" inside the bowl :-)