comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Limited use for limited with?
Date: Tue, 5 Oct 2010 02:35:46 -0500
Date: 2010-10-05T02:35:46-05:00	[thread overview]
Message-ID: <i8ekgk$ie8$1@munin.nbi.dk> (raw)
In-Reply-To: f059316d-9994-4ea4-b984-f9530768bfbc@d25g2000yqc.googlegroups.com

"Maciej Sobczak" <see.my.homepage@gmail.com> wrote in message 
news:f059316d-9994-4ea4-b984-f9530768bfbc@d25g2000yqc.googlegroups.com...
...
> Not at all. In my design Object knows nothing about registry. There is
> no such dependency and therefore it does not have to be broken.

But the Registries are completely unsafe! They have no way to protect 
against dangling pointers, so any client mistake (and clients make *lots* of 
mistakes) will cause the entire system to crash or malfunction. (And this 
will be the worst kind of crash, with no possible way to finding where it 
came from, since the crash will occur long after the actual error and not be 
tied to it in any way.)

It's always better to prevent abuse in the interface. And in this case, I 
don't think you have any choice unless you are willing to assume that your 
clients are perfect (ha!). Storing arbitrary general access values is no 
safer than storing a link to an object without finalization protection. You 
shouldn't do either one of them.

Unless you like to spend many hours in a debugger, single-stepping your 
code, you will find some way to protect the registries against the 
possibility of dangling pointers. And that is going to require some sort of 
cooperation (or deep copies, which I agree will often not work).

                              Randy.





  parent reply	other threads:[~2010-10-05  7:35 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
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 [this message]
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