Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: jtc@redback.com (J.T. Conklin)
To: "John R. Moore" <jmoore@cygnus.com>
Cc: <gdb-patches@sources.redhat.com>
Subject: Re: xfree() -- set ptr to nil (fwd)
Date: Mon, 12 Feb 2001 15:25:00 -0000	[thread overview]
Message-ID: <5mzofr1o34.fsf@jtc.redback.com> (raw)
In-Reply-To: <Pine.GSO.4.31.0102121506170.16672-100000@cse.cygnus.com>

>>>>> "John" == John R Moore <jmoore@cygnus.com> writes:
John> Nice, but why not the following:
John>
John> if (ptr)
John>   {
John>      free (ptr);
John>      prt = NULL);
John>   }
John>
John> The latter catches any re-calls to xfree(), unless the compiler sets the
John> ptr to nil for one (gcc doesn't appear to). Anyhow, it's a good practice
John> to do this anyhow.
John>
John> Any opinions?  The only reason I can think not to is to insure that gdb
John> core dumps on succesive xfree() calls to the same pointer (and hence
John> insure efficient code, but in that case, why bother with xfree() in the
John> first place.

This won't work.  Remember ptr is passed by value.  While you can
change ptr's value within xfree(), that doesn't change the value of
the variable that was passed to it.

IMO, xfree()'s reason for existance is not protecting against multiple
frees of the same object, but supporting frees of a possibly NULL ptr.
Modern free() implementations already support this, but we support old
pre-ANSI C libraries as well.  

        --jtc

-- 
J.T. Conklin
RedBack Networks


  parent reply	other threads:[~2001-02-12 15:25 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-12 15:07 John R. Moore
2001-02-12 15:21 ` Kevin Buettner
2001-02-12 15:33   ` John R. Moore
2001-02-12 15:46     ` Daniel Berlin
2001-02-12 15:52       ` John R. Moore
2001-02-12 15:54     ` J.T. Conklin
2001-02-12 15:25 ` J.T. Conklin [this message]
2001-02-12 16:01 Michael Elizabeth Chastain
2001-02-13 14:12 ` Andrew Cagney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5mzofr1o34.fsf@jtc.redback.com \
    --to=jtc@redback.com \
    --cc=gdb-patches@sources.redhat.com \
    --cc=jmoore@cygnus.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox