From: Mark Johnson <mark_h_johnson@raytheon.com>
Subject: Re: memory leakages with Ada?
Date: Tue, 19 Mar 2002 17:43:27 -0600
Date: 2002-03-19T17:43:27-06:00 [thread overview]
Message-ID: <3C97CD1F.A675D84F@raytheon.com> (raw)
In-Reply-To: pjLl8.22781$e33.4194@nwrddc01.gnilink.net
"Frank J. Lhota" wrote:
>
> Yes, it is true that instantiations of Ada.Unchecked_Deallocation are
> required to do nothing if called with a null access value. This is also true
> of the C/C++ equivalents, i.e. the C call "free(NULL)" should also do
> nothing, according to the standard.
>
> I'm not sure why this is bad.
A little history. I have an old copy of K&R (Chapter 8, p 177) and the
implementation in that book for alloc/free will blow up if you provide a
NULL pointer to free. It is coded something like the following...
free(ap)
char *ap;
{
register HEADER *p, *q;
p = (HEADER *)ap-1;
[at this point, p generally has an invalid address if ap is NULL]
There MAY still be some broken implementations using this code sequence
.... :-)
That is not to say that a general method of...
free(p)
p = NULL;
(or the Ada equivalent) is one way of making your code far more robust
than keeping the dangling pointers around. I use a method like that
to...
o allow for a check for NULL pointers to determine if the data is valid
o get an immediate exception when I forget to check & dereference a
NULL pointer (many machines)
o it prevents a subsequent free to that pointer - a known bad operation
on several systems
That it has the additional benefit of being a "no operation" to free is
a side effect I would just as soon not exercise.
--Mark
next prev parent reply other threads:[~2002-03-19 23:43 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-03-14 14:07 memory leakages with Ada? Calvin Ow
2002-03-14 14:31 ` Larry Kilgallen
2002-03-14 20:42 ` Nick Roberts
2002-03-14 21:11 ` Larry Kilgallen
2002-03-14 21:07 ` Anh_Vo
2002-03-14 20:12 ` Marin David Condic
2002-03-15 9:37 ` John McCabe
2002-03-15 12:55 ` Pat Rogers
2002-03-16 4:36 ` Will
2002-03-16 4:53 ` Pat Rogers
2002-03-16 12:21 ` Larry Kilgallen
2002-03-16 9:13 ` DPH
2002-03-16 14:38 ` Pat Rogers
2002-03-16 14:56 ` DPH
2002-03-16 15:51 ` Preben Randhol
2002-03-16 16:39 ` DPH
2002-03-16 19:51 ` Pat Rogers
2002-03-16 20:40 ` DPH
2002-03-17 19:31 ` Richard Riehle
2002-03-17 21:49 ` Pat Rogers
2002-03-17 22:02 ` Pat Rogers
2002-03-18 22:32 ` Randy Brukardt
2002-03-18 22:47 ` Pat Rogers
2002-03-18 7:22 ` Richard Riehle
2002-03-18 17:35 ` Marin David Condic
2002-03-17 16:26 ` Steve Doiel
2002-03-16 20:18 ` Robert A Duff
2002-03-16 20:36 ` DPH
2002-03-15 14:20 ` Marin David Condic
2002-03-18 17:54 ` Warren W. Gay VE3WWG
2002-03-18 19:54 ` Hyman Rosen
2002-03-18 20:34 ` Larry Kilgallen
2002-03-18 21:18 ` Hyman Rosen
2002-03-18 21:45 ` Larry Kilgallen
2002-03-20 1:19 ` Hyman Rosen
2002-03-20 17:06 ` Warren W. Gay VE3WWG
2002-03-20 17:56 ` Larry Kilgallen
2002-03-20 17:48 ` Marin David Condic
2002-03-22 0:25 ` Matthew Woodcraft
2002-03-22 5:10 ` Hyman Rosen
2002-03-18 22:18 ` Marin David Condic
2002-03-20 20:49 ` Bertrand Augereau
2002-03-21 4:31 ` Will
2002-03-15 16:00 ` Hyman Rosen
2002-03-15 21:59 ` Chad R. Meiners
2002-03-17 5:43 ` Kevin Cline
2002-03-17 7:22 ` Chad R. Meiners
2002-03-18 4:09 ` Kevin Cline
2002-03-18 16:54 ` Chad R. Meiners
2002-03-18 17:38 ` Warren W. Gay VE3WWG
2002-03-19 9:21 ` John McCabe
2002-03-19 17:11 ` Warren W. Gay VE3WWG
2002-03-19 17:16 ` Pat Rogers
2002-03-19 17:51 ` David C. Hoos
2002-03-19 18:20 ` Frank J. Lhota
2002-03-19 23:43 ` Mark Johnson [this message]
2002-03-20 15:09 ` Frank J. Lhota
2002-03-17 7:27 ` Hyman Rosen
2002-03-18 3:52 ` Kevin Cline
2002-03-18 5:37 ` Hyman Rosen
2002-03-15 17:41 ` Kevin Cline
2002-03-15 18:00 ` Marin David Condic
2002-03-15 18:08 ` Hyman Rosen
2002-03-16 10:15 ` Kevin Cline
2002-03-14 23:14 ` Kevin Cline
2002-03-15 3:20 ` Steve Doiel
2002-03-15 9:32 ` John McCabe
2002-03-15 15:46 ` Hyman Rosen
2002-03-15 17:29 ` Kevin Cline
2002-03-15 15:48 ` Jeffrey Carter
2002-03-16 3:05 ` Steve Doiel
2002-03-16 20:19 ` Jeffrey Carter
2002-03-15 17:25 ` Kevin Cline
2002-03-15 18:03 ` Hyman Rosen
2002-03-16 10:07 ` Kevin Cline
2002-03-17 3:00 ` Hyman Rosen
2002-03-15 9:27 ` John McCabe
-- strict thread matches above, loose matches on Subject: below --
2002-03-20 6:25 Christoph Grein
2002-03-20 16:35 ` Hyman Rosen
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox