comp.lang.ada
 help / color / mirror / Atom feed
From: "Alex R. Mosteo" <alejandro@mosteo.com>
Subject: Re: Issue with GNAT GPL 2009 and GtkAda
Date: Mon, 29 Jun 2009 12:04:47 +0200
Date: 2009-06-29T12:04:47+02:00	[thread overview]
Message-ID: <7arhv9F20ue9dU1@mid.individual.net> (raw)
In-Reply-To: h23faj$fkn$1@munin.nbi.dk

Randy Brukardt wrote:

> "Alex R. Mosteo" <alejandro@mosteo.com> wrote in message
> news:7ajfrgF1vdsnlU1@mid.individual.net...
> ...
>>> declare
>>>    Ptr : access T := new T;
>>> begin
>>>    ...
>>>    External_Ptr := Ptr.all'Uchecked_Access; -- Copy the pointer
>>>    ...
>>> end;  -- Now External_Ptr is dangling, because the object is freed.
>>
>> If I understand correctly, this is because the type of Ptr goes out of
>> scope?
>>
>> I strongly suspect that Gnat does not behave this way, but I should test
>> it.
> 
> Gnat would be wrong if it does *not* behave this way. (Janus/Ada has this
> bug currently.) The master of the anonymous access type is the declare
> block, and it has to be finalized at the end of the scope. I suppose you
> could leave the memory around, but the object has to be finalized (as
> Dmitry's example shows).

No, indeed GNAT GPL 2009 at least is correct. It was my fault; I was almost 
sure of having been doing this in such a way that would have caused dangling 
pointers and immediate crashes. Since this didn't happen, I thought it was 
the compiler's fault. In reality, my remembrance was wrong and in practice 
it was a declaration at the library level so it couldn't happen.

Not nice though, I was completely unaware and that makes me uneasy.



  reply	other threads:[~2009-06-29 10:04 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-23 21:52 Issue with GNAT GPL 2009 and GtkAda Damien Carbonne
2009-06-24  7:40 ` Dmitry A. Kazakov
2009-06-24 10:15 ` Stephen Leake
2009-06-25  9:06   ` Stephen Leake
2009-06-25  9:39     ` Dmitry A. Kazakov
2009-06-25 19:02       ` Damien Carbonne
2009-06-26  9:31         ` Stephen Leake
2009-06-26 11:18           ` Niklas Holsti
2009-06-26 16:29             ` Damien Carbonne
2009-06-26 17:28               ` Dmitry A. Kazakov
2009-06-26 19:27                 ` Damien Carbonne
2009-06-26 19:50                   ` Dmitry A. Kazakov
2009-06-26 21:51             ` Randy Brukardt
2009-06-27 11:11               ` Stephen Leake
2009-06-27 17:04                 ` Robert A Duff
2009-06-30 11:11                   ` Stephen Leake
2009-06-30 18:10                     ` Robert A Duff
2009-06-29 22:11                 ` Randy Brukardt
2009-06-30 11:13                   ` Stephen Leake
2009-06-30 15:26                     ` Adam Beneschan
2009-06-30 15:59               ` Adam Beneschan
2009-06-30 23:11                 ` Randy Brukardt
2009-06-27  9:56             ` Stephen Leake
2009-06-26 21:03           ` Damien Carbonne
2009-06-27 11:21             ` Stephen Leake
2009-06-27 12:25               ` Damien Carbonne
2009-06-27 12:35                 ` Damien Carbonne
2009-06-29 22:15                   ` Randy Brukardt
2009-07-01 19:22                     ` Damien Carbonne
2009-06-30  0:48             ` Adam Beneschan
2009-06-30 11:18               ` Stephen Leake
2009-06-25 20:49       ` Randy Brukardt
2009-06-26  7:20         ` Dmitry A. Kazakov
2009-06-26  8:17           ` Georg Bauhaus
2009-06-26  8:52             ` Dmitry A. Kazakov
2009-06-26 21:38               ` Randy Brukardt
2009-06-27  7:47                 ` Dmitry A. Kazakov
2009-06-29 21:59                   ` Randy Brukardt
2009-06-30  8:31                     ` Dmitry A. Kazakov
2009-06-26 21:31           ` Randy Brukardt
2009-06-27  7:53             ` Dmitry A. Kazakov
2009-06-26  8:39       ` Alex R. Mosteo
2009-06-26  9:07         ` Dmitry A. Kazakov
2009-06-27  9:53           ` Stephen Leake
2009-06-26 21:40         ` Randy Brukardt
2009-06-29 10:04           ` Alex R. Mosteo [this message]
2009-06-26  9:02       ` Stephen Leake
2009-06-26  9:14         ` Dmitry A. Kazakov
replies disabled

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