[pushed] Remove useless NULL check in python.c

Message ID 20200219145728.14136-1-tromey@adacore.com
State New
Headers show
Series
  • [pushed] Remove useless NULL check in python.c
Related show

Commit Message

Tom Tromey Feb. 19, 2020, 2:57 p.m.
I noticed that do_start_initialization, in python.c, checks the result
of xmalloc.  However, xmalloc cannot fail, so this check is useless.
This patch also changes the code to use XNEWVEC.

gdb/ChangeLog
2020-02-19  Tom Tromey  <tromey@adacore.com>

	* python/python.c (do_start_initialization): Use XNEWVEC.  Remove
	NULL check.
---
 gdb/ChangeLog       | 5 +++++
 gdb/python/python.c | 7 +------
 2 files changed, 6 insertions(+), 6 deletions(-)

-- 
2.21.1

Comments

Victor Collod via Gdb-patches Feb. 19, 2020, 3:16 p.m. | #1
On Wed, Feb 19, 2020, 18:57 Tom Tromey <tromey@adacore.com> wrote:

> I noticed that do_start_initialization, in python.c, checks the result

> of xmalloc.  However, xmalloc cannot fail, so this check is useless.

> This patch also changes the code to use XNEWVEC.

>

> gdb/ChangeLog

> 2020-02-19  Tom Tromey  <tromey@adacore.com>

>

>         * python/python.c (do_start_initialization): Use XNEWVEC.  Remove

>         NULL check.

> ---

>  gdb/ChangeLog       | 5 +++++

>  gdb/python/python.c | 7 +------

>  2 files changed, 6 insertions(+), 6 deletions(-)

>

> diff --git a/gdb/python/python.c b/gdb/python/python.c

> index 27d6042c618..fbbc159ede3 100644

> --- a/gdb/python/python.c

> +++ b/gdb/python/python.c

> @@ -1679,12 +1679,7 @@ do_start_initialization ()

>    std::string oldloc = setlocale (LC_ALL, NULL);

>    setlocale (LC_ALL, "");

>    progsize = strlen (progname.get ());

> -  progname_copy = (wchar_t *) xmalloc ((progsize + 1) * sizeof (wchar_t));

> -  if (!progname_copy)

> -    {

> -      fprintf (stderr, "out of memory\n");

> -      return false;

> -    }

> +  progname_copy = XNEWVEC (wchar_t, progsize + 1);

>


Have you considered using STD::wstring instead of this manual memory
management?

   count = mbstowcs (progname_copy, progname.get (), progsize + 1);

   if (count == (size_t) -1)
>      {

> --

> 2.21.1

>

>
Tom Tromey Feb. 19, 2020, 3:34 p.m. | #2
>>>>> "Christian" == Christian Biesinger via gdb-patches <gdb-patches@sourceware.org> writes:


Christian> Have you considered using STD::wstring instead of this manual memory
Christian> management?

I did, but converting to wstring seemed unusually complicated compared
to what we have.  Though, this isn't a part of C++ that I know well, so
I'm open to being wrong about that.

Tom

Patch

diff --git a/gdb/python/python.c b/gdb/python/python.c
index 27d6042c618..fbbc159ede3 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -1679,12 +1679,7 @@  do_start_initialization ()
   std::string oldloc = setlocale (LC_ALL, NULL);
   setlocale (LC_ALL, "");
   progsize = strlen (progname.get ());
-  progname_copy = (wchar_t *) xmalloc ((progsize + 1) * sizeof (wchar_t));
-  if (!progname_copy)
-    {
-      fprintf (stderr, "out of memory\n");
-      return false;
-    }
+  progname_copy = XNEWVEC (wchar_t, progsize + 1);
   count = mbstowcs (progname_copy, progname.get (), progsize + 1);
   if (count == (size_t) -1)
     {