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.
next prev 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