Use unique_xmalloc_ptr<char> when demangling
I noticed that some methods in language_defn could use unique_xmalloc_ptr<char> rather than a plain 'char *'. This patch implements this change, fixing up the fallout and changing gdb_demangle to also return this type. In one spot, std::string is used to simplify some related code, and in another, an auto_obstack is used to avoid manual management. Regression tested on x86-64 Fedora 34.
This commit is contained in:
parent
e133de4984
commit
3456e70c9d
23 changed files with 118 additions and 136 deletions
|
@ -160,7 +160,6 @@ is_cplus_marker (int c)
|
|||
static void
|
||||
demangle_command (const char *args, int from_tty)
|
||||
{
|
||||
char *demangled;
|
||||
const char *name;
|
||||
const char *arg_start;
|
||||
int processing_args = 1;
|
||||
|
@ -202,12 +201,10 @@ demangle_command (const char *args, int from_tty)
|
|||
else
|
||||
lang = current_language;
|
||||
|
||||
demangled = language_demangle (lang, name, DMGL_ANSI | DMGL_PARAMS);
|
||||
gdb::unique_xmalloc_ptr<char> demangled
|
||||
= language_demangle (lang, name, DMGL_ANSI | DMGL_PARAMS);
|
||||
if (demangled != NULL)
|
||||
{
|
||||
printf_filtered ("%s\n", demangled);
|
||||
xfree (demangled);
|
||||
}
|
||||
printf_filtered ("%s\n", demangled.get ());
|
||||
else
|
||||
error (_("Can't demangle \"%s\""), name);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue