Message ID | 20200219145728.14136-1-tromey@adacore.com |
---|---|
State | New |
Headers | show |
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 > >
>>>>> "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
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) {