Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Andrew Cagney <cagney@gnu.org>
To: Bernardo Innocenti <bernie@develer.com>
Cc: Daniel Jacobowitz <drow@false.org>,
	Ian Lance Taylor <ian@wasabisystems.com>,
	GCC Patches <gcc-patches@gcc.gnu.org>,
	gdb-patches@sources.redhat.com, binutils@sources.redhat.com,
	DJ Delorie <dj@redhat.com>
Subject: Re: [top-level] C++-friendly allocators for libiberty
Date: Sat, 26 Jun 2004 17:22:00 -0000	[thread overview]
Message-ID: <40DDB0B7.1040902@gnu.org> (raw)
In-Reply-To: <20040626024617.GA31620@nevyn.them.org>


>>>> > No, people use realloc with variable size arrays at the end of
>>>> > structs.  xrenewvec (or xresizevec) is a good idea, but you still need
>>>> > xrenew (or xresize).
> 
> 
> Bernando, you've now got an interface which allows reallocating to a
> variable size, but not allocating to one...  There's no need for a
> rush, let's give people some time to comment before putting this into
> libiberty.  As DJ says, it's hard to take things out of libiberty.

I guess daniel had this in mind:

> /* Utility macros to allocate typed memory.  Avoids errors like:
>    struct foo *foo = xmalloc (sizeof struct bar); and memset (foo,
>    sizeof (struct foo), 0).  */
> #define XZALLOC(TYPE) ((TYPE*) memset (xmalloc (sizeof (TYPE)), 0, sizeof (TYPE)
> ))
> #define XMALLOC(TYPE) ((TYPE*) xmalloc (sizeof (TYPE)))
> #define XCALLOC(NMEMB, TYPE) ((TYPE*) xcalloc ((NMEMB), sizeof (TYPE)))

They first appeared in GDB in '99 and were added to GDB's global header 
file in '02 (and I'm sure the idea was stolen from elsewhere).  Unlike 
the macros being proposed, these:

- use uppercase to make it very very clear that they are macros
- are named in a way that directly reflects their C herritage

While I agree with the type casing idea underlying "xnew" et.al. (I was 
in part responsible for the above :-), I don't see any benefit in 
adopting C++ names and pretending that we're writing C++.

Andrew



  parent reply	other threads:[~2004-06-26 17:22 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-26  0:50 Bernardo Innocenti
2004-06-26  1:05 ` Bernardo Innocenti
2004-06-26  1:14 ` Ian Lance Taylor
2004-06-26  1:27   ` Bernardo Innocenti
2004-06-26  2:19     ` Ian Lance Taylor
2004-06-26  2:39       ` Bernardo Innocenti
2004-06-26  2:46         ` Daniel Jacobowitz
2004-06-26  3:04           ` Bernardo Innocenti
2004-06-26 17:22           ` Andrew Cagney [this message]
2004-06-26 17:37             ` Daniel Jacobowitz
2004-06-26 17:51               ` Andrew Cagney
2004-06-27  5:36             ` Bernardo Innocenti
2004-06-28 15:43               ` Andrew Cagney
2004-06-28 18:27                 ` Bernardo Innocenti
2004-06-28 18:52                   ` Joseph S. Myers
2004-07-01  7:18                   ` Bernardo Innocenti
2004-06-26  3:45         ` Alexandre Oliva
2004-06-26  4:18           ` Bernardo Innocenti
2004-06-26 18:31             ` Alexandre Oliva
2004-06-27  5:05               ` Bernardo Innocenti
2004-06-26  4:56           ` Zack Weinberg
2004-06-26 11:19             ` Falk Hueffner
2004-06-26 16:52               ` Bernardo Innocenti

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=40DDB0B7.1040902@gnu.org \
    --to=cagney@gnu.org \
    --cc=bernie@develer.com \
    --cc=binutils@sources.redhat.com \
    --cc=dj@redhat.com \
    --cc=drow@false.org \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=gdb-patches@sources.redhat.com \
    --cc=ian@wasabisystems.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