From 2dc0e219715356c6acbc3bea85ddec288f752f1f Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 12 Oct 2017 16:19:55 -0600 Subject: [PATCH] Remove some cleanups from probe.c This removes some cleanups from parse_probes by using std::string; and removes some unnecessary cleanups from elsewhere in probe.c. ChangeLog 2017-10-16 Tom Tromey * probe.c (parse_probes): Use std::string. (info_probes_for_ops, enable_probes_command) (disable_probes_command): Remove cleanups. --- gdb/ChangeLog | 6 ++++++ gdb/probe.c | 24 ++++-------------------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 326065f641d..248b5d8f897 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2017-10-16 Tom Tromey + + * probe.c (parse_probes): Use std::string. + (info_probes_for_ops, enable_probes_command) + (disable_probes_command): Remove cleanups. + 2017-10-16 Tom Tromey * buildsym.c (block_compar): Remove. diff --git a/gdb/probe.c b/gdb/probe.c index eb6f537bf23..ba409591263 100644 --- a/gdb/probe.c +++ b/gdb/probe.c @@ -98,7 +98,6 @@ parse_probes (const struct event_location *location, { char *arg_end, *arg; char *objfile_namestr = NULL, *provider = NULL, *name, *p; - struct cleanup *cleanup; const struct probe_ops *probe_ops; const char *arg_start, *cs; @@ -118,8 +117,8 @@ parse_probes (const struct event_location *location, arg_end = skip_to_space (arg); /* We make a copy here so we can write over parts with impunity. */ - arg = savestring (arg, arg_end - arg); - cleanup = make_cleanup (xfree, arg); + std::string copy (arg, arg_end - arg); + arg = ©[0]; /* Extract each word from the argument, separated by ":"s. */ p = strchr (arg, ':'); @@ -183,17 +182,12 @@ parse_probes (const struct event_location *location, if (canonical) { - char *canon; - - canon = savestring (arg_start, arg_end - arg_start); - make_cleanup (xfree, canon); + std::string canon (arg_start, arg_end - arg_start); canonical->special_display = 1; canonical->pre_expanded = 1; - canonical->location = new_probe_location (canon); + canonical->location = new_probe_location (canon.c_str ()); } - do_cleanups (cleanup); - return result; } @@ -548,7 +542,6 @@ info_probes_for_ops (const char *arg, int from_tty, const struct probe_ops *pops) { std::string provider, probe_name, objname; - struct cleanup *cleanup = make_cleanup (null_cleanup, NULL); int any_found; int ui_out_extra_fields = 0; size_t size_addr; @@ -657,7 +650,6 @@ info_probes_for_ops (const char *arg, int from_tty, any_found = !probes.empty (); } - do_cleanups (cleanup); if (!any_found) current_uiout->message (_("No probes matched.\n")); @@ -677,7 +669,6 @@ static void enable_probes_command (const char *arg, int from_tty) { std::string provider, probe_name, objname; - struct cleanup *cleanup = make_cleanup (null_cleanup, NULL); parse_probe_linespec ((const char *) arg, &provider, &probe_name, &objname); @@ -686,7 +677,6 @@ enable_probes_command (const char *arg, int from_tty) if (probes.empty ()) { current_uiout->message (_("No probes matched.\n")); - do_cleanups (cleanup); return; } @@ -706,8 +696,6 @@ enable_probes_command (const char *arg, int from_tty) current_uiout->message (_("Probe %s:%s cannot be enabled.\n"), probe.probe->provider, probe.probe->name); } - - do_cleanups (cleanup); } /* Implementation of the `disable probes' command. */ @@ -716,7 +704,6 @@ static void disable_probes_command (const char *arg, int from_tty) { std::string provider, probe_name, objname; - struct cleanup *cleanup = make_cleanup (null_cleanup, NULL); parse_probe_linespec ((const char *) arg, &provider, &probe_name, &objname); @@ -725,7 +712,6 @@ disable_probes_command (const char *arg, int from_tty) if (probes.empty ()) { current_uiout->message (_("No probes matched.\n")); - do_cleanups (cleanup); return; } @@ -745,8 +731,6 @@ disable_probes_command (const char *arg, int from_tty) current_uiout->message (_("Probe %s:%s cannot be disabled.\n"), probe.probe->provider, probe.probe->name); } - - do_cleanups (cleanup); } /* See comments in probe.h. */ -- 2.30.2