[pushed] Remove useless NULL check in python.c

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

Commit Message

Tom Tromey Feb. 19, 2020, 2:57 p.m. UTC
  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(-)
  

Comments

Terekhov, Mikhail via Gdb-patches Feb. 19, 2020, 3:16 p.m. UTC | #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. UTC | #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)
     {