diff options
author | Tom Tromey <tom@tromey.com> | 2017-09-10 14:48:30 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2017-09-11 15:46:14 -0600 |
commit | cb791d59489576280e416262eb61ab59765a0baf (patch) | |
tree | 16a968a28a8926f82e69990be93b5f86dec81ae3 /gdb/demangle.c | |
parent | 2039bd9f0ce667f3f0ee99c18e25de1ea18a2288 (diff) | |
download | gdb-cb791d59489576280e416262eb61ab59765a0baf.zip gdb-cb791d59489576280e416262eb61ab59765a0baf.tar.gz gdb-cb791d59489576280e416262eb61ab59765a0baf.tar.bz2 |
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.
Diffstat (limited to 'gdb/demangle.c')
-rw-r--r-- | gdb/demangle.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/gdb/demangle.c b/gdb/demangle.c index 892ad18..5430fb6 100644 --- a/gdb/demangle.c +++ b/gdb/demangle.c @@ -170,21 +170,21 @@ demangle_command (char *args, int from_tty) std::string arg_buf = args != NULL ? args : ""; arg_start = arg_buf.c_str (); - gdb::unique_xmalloc_ptr<char> lang_name; + std::string lang_name; while (processing_args && *arg_start == '-') { const char *p = skip_to_space (arg_start); if (strncmp (arg_start, "-l", p - arg_start) == 0) - lang_name.reset (extract_arg (&p)); + lang_name = extract_arg (&p); else if (strncmp (arg_start, "--", p - arg_start) == 0) processing_args = 0; else { - gdb::unique_xmalloc_ptr<char> option (extract_arg (&p)); + std::string option = extract_arg (&p); error (_("Unrecognized option '%s' to demangle command. " - "Try \"help demangle\"."), option.get ()); + "Try \"help demangle\"."), option.c_str ()); } arg_start = skip_spaces (p); @@ -195,13 +195,13 @@ demangle_command (char *args, int from_tty) if (*name == '\0') error (_("Usage: demangle [-l language] [--] name")); - if (lang_name != NULL) + if (!lang_name.empty ()) { enum language lang_enum; - lang_enum = language_enum (lang_name.get ()); + lang_enum = language_enum (lang_name.c_str ()); if (lang_enum == language_unknown) - error (_("Unknown language \"%s\""), lang_name.get ()); + error (_("Unknown language \"%s\""), lang_name.c_str ()); lang = language_def (lang_enum); } else |