aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2013-05-30 17:13:19 +0000
committerTom Tromey <tromey@redhat.com>2013-05-30 17:13:19 +0000
commite12fefc804bcbe2d53554390b76f07005632a526 (patch)
tree094e10dc9c60d6b54cc1df006e14d206d3aad2dc
parent4867f990df59cbde08a2e09471f1ca7c1404a14b (diff)
downloadgdb-e12fefc804bcbe2d53554390b76f07005632a526.zip
gdb-e12fefc804bcbe2d53554390b76f07005632a526.tar.gz
gdb-e12fefc804bcbe2d53554390b76f07005632a526.tar.bz2
simplify cli-logging.c for analysis
This is another stylistic patch. It changes cli-logging.c to be analyzable by the checker, again following the method of adding an outer cleanup and unconditionally calling do_cleanups. * cli/cli-logging.c (set_logging_redirect): Unconditionally call do_cleanups.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/cli/cli-logging.c9
2 files changed, 10 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b8e5f99..5b9e8dd 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2013-05-30 Tom Tromey <tromey@redhat.com>
+ * cli/cli-logging.c (set_logging_redirect): Unconditionally
+ call do_cleanups.
+
+2013-05-30 Tom Tromey <tromey@redhat.com>
+
* varobj.c (c_value_of_root): Call do_cleanups along all
return paths.
diff --git a/gdb/cli/cli-logging.c b/gdb/cli/cli-logging.c
index 9f1477d..5704179 100644
--- a/gdb/cli/cli-logging.c
+++ b/gdb/cli/cli-logging.c
@@ -79,7 +79,7 @@ static struct ui_file *logging_no_redirect_file;
static void
set_logging_redirect (char *args, int from_tty, struct cmd_list_element *c)
{
- struct cleanup *cleanups = NULL;
+ struct cleanup *cleanups;
struct ui_file *output, *new_logging_no_redirect_file;
struct ui_out *uiout = current_uiout;
@@ -88,13 +88,15 @@ set_logging_redirect (char *args, int from_tty, struct cmd_list_element *c)
|| (logging_redirect == 0 && logging_no_redirect_file != NULL))
return;
+ cleanups = make_cleanup (null_cleanup, NULL);
+
if (logging_redirect != 0)
{
gdb_assert (logging_no_redirect_file != NULL);
/* ui_out_redirect still has not been called for next
gdb_stdout. */
- cleanups = make_cleanup_ui_file_delete (gdb_stdout);
+ make_cleanup_ui_file_delete (gdb_stdout);
output = logging_no_redirect_file;
new_logging_no_redirect_file = NULL;
@@ -139,8 +141,7 @@ set_logging_redirect (char *args, int from_tty, struct cmd_list_element *c)
|| ui_out_redirect (uiout, output) < 0)
warning (_("Current output protocol does not support redirection"));
- if (logging_redirect != 0)
- do_cleanups (cleanups);
+ do_cleanups (cleanups);
}
static void