[PATCH 17/40] simplify cli-logging.c for analysis

Tom Tromey
2013-05-09T18:51:38Z

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.
---
gdb/cli/cli-logging.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

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
--
1.8.1.4