From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: Limited use for limited with?
Date: Wed, 29 Sep 2010 08:03:38 +0200
Date: 2010-09-29T08:03:38+02:00 [thread overview]
Message-ID: <8762xpgk79.fsf@ludovic-brenta.org> (raw)
In-Reply-To: 67044906-dacc-4526-b3f6-27e5323ab8fc@n3g2000yqb.googlegroups.com
Maciej Sobczak writes on comp.lang.ada:
> Consider:
>
> procedure Register (X : in Object'Class);
>
> X will be passed by reference, but there is still nothing in the
> signature (apart from the name of the operation) that would suggest
> that the reference will be leaked out of the operation's scope. So the
> user does this:
>
> declare
> X : My_Concrete_Object;
> begin
> Register (X);
> endl;
>
> and bang, everything breaks into pieces.
No, because this is Ada :)
Suppose Register does something like (where Registry is a suitably
defined indefinite vector):
procedure Register (X : in Object'Class) is
begin
Registry.Append (X);
end Register;
This does copy a "hidden" reference to X into the Registry, it copies X
itself (i.e. deep copy). So there is no leak and the construct is safe.
Not so with explicit access values.
--
Ludovic Brenta.
next prev parent reply other threads:[~2010-09-29 6:03 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-28 7:37 Limited use for limited with? Maciej Sobczak
2010-09-28 9:04 ` Alex R. Mosteo
2010-09-30 7:24 ` Stephen Leake
2010-09-30 9:21 ` Alex R. Mosteo
2010-09-28 9:18 ` Ludovic Brenta
2010-09-28 12:59 ` Maciej Sobczak
2010-09-28 13:45 ` Dmitry A. Kazakov
2010-09-28 21:57 ` Maciej Sobczak
2010-09-29 6:03 ` Ludovic Brenta [this message]
2010-09-29 8:25 ` Maciej Sobczak
2010-09-29 7:51 ` Dmitry A. Kazakov
2010-09-29 8:38 ` Maciej Sobczak
2010-09-29 9:16 ` Dmitry A. Kazakov
2010-09-29 12:22 ` Maciej Sobczak
2010-09-29 13:41 ` Dmitry A. Kazakov
2010-09-29 15:07 ` Georg Bauhaus
2010-09-29 19:22 ` Dmitry A. Kazakov
2010-09-29 20:51 ` Maciej Sobczak
2010-09-29 21:18 ` Dmitry A. Kazakov
2010-10-05 7:35 ` Randy Brukardt
2010-10-08 8:05 ` Maciej Sobczak
2010-10-09 6:29 ` Randy Brukardt
2010-10-05 7:25 ` Randy Brukardt
2010-10-08 8:23 ` Maciej Sobczak
2010-10-09 6:13 ` Randy Brukardt
2010-10-10 14:13 ` Maciej Sobczak
2010-10-11 6:23 ` Randy Brukardt
2010-10-12 19:29 ` Maciej Sobczak
2010-10-12 20:19 ` Dmitry A. Kazakov
2010-10-13 2:09 ` Randy Brukardt
2010-10-13 8:44 ` Georg Bauhaus
2010-10-15 0:59 ` Randy Brukardt
2010-10-13 9:43 ` Maciej Sobczak
2010-09-28 15:15 ` Ludovic Brenta
2010-09-28 22:04 ` Maciej Sobczak
2010-09-28 15:54 ` Robert A Duff
2010-09-30 7:27 ` Stephen Leake
2010-09-30 7:33 ` Ludovic Brenta
2010-09-30 16:03 ` Adam Beneschan
2010-10-07 11:55 ` Stephen Leake
2010-10-07 18:27 ` Martin Krischik
2010-10-07 21:30 ` Adam Beneschan
2010-10-09 6:29 ` Martin Krischik
2010-10-09 18:35 ` Robert A Duff
2010-10-08 0:07 ` Randy Brukardt
2010-10-09 6:21 ` Martin Krischik
2010-09-28 9:32 ` Vadim Godunko
2010-09-28 11:34 ` stefan-lucks
2010-09-28 13:15 ` stefan-lucks
2010-09-28 16:55 ` Adam Beneschan
2010-09-28 17:31 ` Robert A Duff
2010-09-28 19:24 ` Adam Beneschan
2010-09-28 20:32 ` Vadim Godunko
2010-09-28 21:32 ` Adam Beneschan
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox