[mythtv] Re: Myth Theme Memory Usage
Joseph A. Caputo
jcaputo1 at comcast.net
Thu Dec 9 15:16:09 UTC 2004
On Wednesday 08 December 2004 21:42, Alan Gonzalez wrote:
> > Actually, it's not *guaranteed* to be OK to delete a NULL
> > pointer... though it usually is, it's implementation-defined
> > behavior. I usually do the following just to be safe:
> >
> > if (ptr)
> > {
> > delete ptr;
> > ptr = NULL;
> > }
>
> Really? The C99 specification states otherwise. I've been under
> the assumption that this is an old myth that continues to be
> propagated. Have you actually seen something like that happen? I
> haven't. I know that GCC, G++ and Microsoft compilers (look at MSDN
> docs on 'delete' operator) check the value of the pointer being sent
> in.
>
> Found this:
>
> "C++ guarantees that operator delete checks its argument for
> null-ness. If the argument is 0, the delete expression has no effect.
> In other words, deleting a null pointer is a safe (yet useless)
> operation. There is no need to check the pointer for null-ness before
> passing it to delete:
>
Well, there you go; I'm dating myself. :-)
I'm falling back on my pre-C99, pre-ANSI/ISO C++ knowledge... actually,
most of my formative C++ experience was really not C++ at all, but
cfront. At the very least, I know that in at least one version of
pre-ANSI C++ or possibly cfront, the array delete (delete [] ) operator
at least was not guaranteed to be NULL-pointer safe.
Ah, well... you learn something every day!
-JAC
More information about the mythtv-dev
mailing list