Make extract_arg return a std::string
Change extract_arg to return a std::string and fix up all the users. I think string is mildly better than unique_xmalloc_ptr<char>, when possible, because it provides a more robust API. I changed the error messages emitted from find_location_by_number to avoid either writing to a string or an extra allocation; this can be changed but I thought that the new message was not any less clear. You can see an example in the testsuite patch. ChangeLog 2017-09-11 Tom Tromey <tom@tromey.com> * demangle.c (demangle_command): Update. * breakpoint.c (disable_command): Update. (enable_command): Update. (find_location_by_number): Make "number" const. Use get_number_trailer. * cli/cli-utils.c (extract_arg): Return std::string. * probe.c (parse_probe_linespec): Update. Change types. (collect_probes): Take string arguments. (parse_probe_linespec): Likewise. (info_probes_for_ops): Update. (enable_probes_command): Update. (disable_probes_command): Update. * break-catch-sig.c (catch_signal_split_args): Update. * mi/mi-parse.c (mi_parse): Update. testsuite/ChangeLog 2017-09-11 Tom Tromey <tom@tromey.com> * gdb.base/ena-dis-br.exp (test_ena_dis_br): Update test.
This commit is contained in:
parent
2039bd9f0c
commit
cb791d5948
10 changed files with 92 additions and 85 deletions
|
@ -249,36 +249,36 @@ remove_trailing_whitespace (const char *start, const char *s)
|
|||
|
||||
/* See documentation in cli-utils.h. */
|
||||
|
||||
char *
|
||||
std::string
|
||||
extract_arg (const char **arg)
|
||||
{
|
||||
const char *result;
|
||||
|
||||
if (!*arg)
|
||||
return NULL;
|
||||
return std::string ();
|
||||
|
||||
/* Find the start of the argument. */
|
||||
*arg = skip_spaces (*arg);
|
||||
if (!**arg)
|
||||
return NULL;
|
||||
return std::string ();
|
||||
result = *arg;
|
||||
|
||||
/* Find the end of the argument. */
|
||||
*arg = skip_to_space (*arg + 1);
|
||||
|
||||
if (result == *arg)
|
||||
return NULL;
|
||||
return std::string ();
|
||||
|
||||
return savestring (result, *arg - result);
|
||||
return std::string (result, *arg - result);
|
||||
}
|
||||
|
||||
/* See documentation in cli-utils.h. */
|
||||
|
||||
char *
|
||||
std::string
|
||||
extract_arg (char **arg)
|
||||
{
|
||||
const char *arg_const = *arg;
|
||||
char *result;
|
||||
std::string result;
|
||||
|
||||
result = extract_arg (&arg_const);
|
||||
*arg += arg_const - *arg;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue