Remove some calls to malloc_failure

Message ID 20191210203502.30392-1-tromey@adacore.com
State New, archived
Headers

Commit Message

Tom Tromey Dec. 10, 2019, 8:35 p.m. UTC
  I noticed a couple of spots that call malloc_failure, but that don't
need to.

* In xml-support.c, "concat" uses xmalloc, so cannot return NULL.

* In utils.c, "buildargv" also uses xmalloc, so can only return NULL
  if the argument is empty.

Tested by the buildbot.

gdb/ChangeLog
2019-12-10  Tom Tromey  <tromey@adacore.com>

	* xml-support.c (xml_fetch_content_from_file): Don't call
	malloc_failure.
	* utils.h (class gdb_argv): Remove malloc_failure comment.
	* utils.c (gdb_argv::reset): Don't call malloc_failure.

Change-Id: I59483620deb6609ccf2f024d94a29113bb62d1a9
---
 gdb/ChangeLog     | 7 +++++++
 gdb/utils.c       | 3 ---
 gdb/utils.h       | 5 +----
 gdb/xml-support.c | 2 --
 4 files changed, 8 insertions(+), 9 deletions(-)
  

Comments

Simon Marchi Dec. 11, 2019, 1:25 a.m. UTC | #1
On 2019-12-10 3:35 p.m., Tom Tromey wrote:
> I noticed a couple of spots that call malloc_failure, but that don't
> need to.
> 
> * In xml-support.c, "concat" uses xmalloc, so cannot return NULL.
> 
> * In utils.c, "buildargv" also uses xmalloc, so can only return NULL
>   if the argument is empty.
> 
> Tested by the buildbot.

Thanks, that LGTM.

Simon
  

Patch

diff --git a/gdb/utils.c b/gdb/utils.c
index f7fae35729b..0b8ec02abe6 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -3033,9 +3033,6 @@  gdb_argv::reset (const char *s)
 {
   char **argv = buildargv (s);
 
-  if (s != NULL && argv == NULL)
-    malloc_failure (0);
-
   freeargv (m_argv);
   m_argv = argv;
 }
diff --git a/gdb/utils.h b/gdb/utils.h
index c8337f23017..71860191403 100644
--- a/gdb/utils.h
+++ b/gdb/utils.h
@@ -146,10 +146,7 @@  public:
   }
 
   /* A constructor that calls buildargv on STR.  STR may be NULL, in
-     which case this object is initialized with a NULL array.  If
-     buildargv fails due to out-of-memory, call malloc_failure.
-     Therefore, the value is guaranteed to be non-NULL, unless the
-     parameter itself is NULL.  */
+     which case this object is initialized with a NULL array.  */
 
   explicit gdb_argv (const char *str)
     : m_argv (NULL)
diff --git a/gdb/xml-support.c b/gdb/xml-support.c
index 915be76066d..f5a14275457 100644
--- a/gdb/xml-support.c
+++ b/gdb/xml-support.c
@@ -977,8 +977,6 @@  xml_fetch_content_from_file (const char *filename, void *baton)
     {
       char *fullname = concat (dirname, "/", filename, (char *) NULL);
 
-      if (fullname == NULL)
-	malloc_failure (0);
       file = gdb_fopen_cloexec (fullname, FOPEN_RT);
       xfree (fullname);
     }