Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Andrew Cagney <ac131313@redhat.com>
To: gdb-patches@sources.redhat.com
Subject: [patch rfc] Make GDB's xmalloc match liberties
Date: Sat, 12 Apr 2003 00:42:00 -0000	[thread overview]
Message-ID: <3E9760F6.1040704@redhat.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 122 bytes --]

Per recent discussion, this modifies GDB's xmalloc (actually xmmalloc) 
so that the behavior matches libiberty's.

Andrew

[-- Attachment #2: diffs --]
[-- Type: text/plain, Size: 1958 bytes --]

2003-04-11  Andrew Cagney  <cagney@redhat.com>

	* utils.c (xmmalloc): Always allocate something, matches
	libiberty/xmalloc's semantics.
	(xmrealloc, xmcalloc): Ditto.

Index: utils.c
===================================================================
RCS file: /cvs/src/src/gdb/utils.c,v
retrieving revision 1.100
diff -u -r1.100 utils.c
--- utils.c	10 Apr 2003 02:18:40 -0000	1.100
+++ utils.c	12 Apr 2003 00:40:30 -0000
@@ -1073,16 +1073,15 @@
 {
   void *val;
 
+  /* See libiberty/xmalloc.c.  This function need's to match that's
+     semantics.  It never returns NULL.  */
   if (size == 0)
-    {
-      val = NULL;
-    }
-  else
-    {
-      val = mmalloc (md, size);
-      if (val == NULL)
-	nomem (size);
-    }
+    size = 1;
+
+  val = mmalloc (md, size);
+  if (val == NULL)
+    nomem (size);
+
   return (val);
 }
 
@@ -1091,27 +1090,18 @@
 {
   void *val;
 
+  /* See libiberty/xmalloc.c.  This function need's to match that's
+     semantics.  It never returns NULL.  */
   if (size == 0)
-    {
-      if (ptr != NULL)
-	mfree (md, ptr);
-      val = NULL;
-    }
+    size = 1;
+
+  if (ptr != NULL)
+    val = mrealloc (md, ptr, size);
   else
-    {
-      if (ptr != NULL)
-	{
-	  val = mrealloc (md, ptr, size);
-	}
-      else
-	{
-	  val = mmalloc (md, size);
-	}
-      if (val == NULL)
-	{
-	  nomem (size);
-	}
-    }
+    val = mmalloc (md, size);
+  if (val == NULL)
+    nomem (size);
+
   return (val);
 }
 
@@ -1119,14 +1109,19 @@
 xmcalloc (void *md, size_t number, size_t size)
 {
   void *mem;
+
+  /* See libiberty/xmalloc.c.  This function need's to match that's
+     semantics.  It never returns NULL.  */
   if (number == 0 || size == 0)
-    mem = NULL;
-  else
     {
-      mem = mcalloc (md, number, size);
-      if (mem == NULL)
-	nomem (number * size);
+      number = 1;
+      size = 1;
     }
+
+  mem = mcalloc (md, number, size);
+  if (mem == NULL)
+    nomem (number * size);
+
   return mem;
 }
 

             reply	other threads:[~2003-04-12  0:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-12  0:42 Andrew Cagney [this message]
2003-04-13 14:12 ` Daniel Jacobowitz
2003-04-16 14:43 ` 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=3E9760F6.1040704@redhat.com \
    --to=ac131313@redhat.com \
    --cc=gdb-patches@sources.redhat.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