Make parse_debug_format_options return an std::string

This avoid having to manually free the return value.

gdb/gdbserver/ChangeLog:

	* server.c (parse_debug_format_options): Return std::string.
	(handle_monitor_command, captured_main): Adjust.
This commit is contained in:
Simon Marchi 2018-01-07 10:50:48 -05:00 committed by Simon Marchi
parent b01ba14d4d
commit 2cc050302c
2 changed files with 15 additions and 11 deletions

View File

@ -1,3 +1,8 @@
2018-01-07 Simon Marchi <simon.marchi@polymtl.ca>
* server.c (parse_debug_format_options): Return std::string.
(handle_monitor_command, captured_main): Adjust.
2018-01-05 Pedro Alves <palves@redhat.com>
PR gdb/18653

View File

@ -1295,7 +1295,7 @@ handle_detach (char *own_buf)
to gdb's "set debug foo on|off" because we also use this function to
parse "--debug-format=foo,bar". */
static char *
static std::string
parse_debug_format_options (const char *arg, int is_monitor)
{
VEC (char_ptr) *options;
@ -1338,8 +1338,8 @@ parse_debug_format_options (const char *arg, int is_monitor)
}
else
{
char *msg = xstrprintf ("Unknown debug-format argument: \"%s\"\n",
option);
std::string msg
= string_printf ("Unknown debug-format argument: \"%s\"\n", option);
free_char_ptr_vec (options);
return msg;
@ -1347,7 +1347,7 @@ parse_debug_format_options (const char *arg, int is_monitor)
}
free_char_ptr_vec (options);
return NULL;
return std::string ();
}
/* Handle monitor commands not handled by target-specific handlers. */
@ -1387,16 +1387,15 @@ handle_monitor_command (char *mon, char *own_buf)
}
else if (startswith (mon, "set debug-format "))
{
char *error_msg
std::string error_msg
= parse_debug_format_options (mon + sizeof ("set debug-format ") - 1,
1);
if (error_msg != NULL)
if (!error_msg.empty ())
{
monitor_output (error_msg);
monitor_output (error_msg.c_str ());
monitor_show_help ();
write_enn (own_buf);
xfree (error_msg);
}
}
else if (strcmp (mon, "help") == 0)
@ -3611,13 +3610,13 @@ captured_main (int argc, char *argv[])
debug_threads = 1;
else if (startswith (*next_arg, "--debug-format="))
{
char *error_msg
std::string error_msg
= parse_debug_format_options ((*next_arg)
+ sizeof ("--debug-format=") - 1, 0);
if (error_msg != NULL)
if (!error_msg.empty ())
{
fprintf (stderr, "%s", error_msg);
fprintf (stderr, "%s", error_msg.c_str ());
exit (1);
}
}