Change return type of ui_out redirect to void

All implementations of redirect/do_redirect in the ui_out subsystem
always return 0 (success).  We can therefore clean it up and make them
return void.

gdb/ChangeLog:

	* cli-out.c (cli_ui_out::do_redirect): Change return type to
	void.
	* cli-out.h (cli_ui_out::do_redirect): Likewise.
	* mi/mi-out.c (mi_ui_out::do_redirect): Likewise.
	* mi/mi-out.h (mi_ui_out::do_redirect): Likewise.
	* ui-out.c (ui_out::redirect): Likewise.
	* ui-out.h (ui_out::redirect, ui_out::do_redirect): Likewise.
	* cli/cli-logging.c (set_logging_redirect): Update call site of
	ui_out::redirect.
	(handle_redirections): Likewise.
	* scm-ports.c (ioscm_with_output_to_port_worker): Likewise.
	* top.c (execute_command_to_string): Likewise.
	* utils.c (do_ui_out_redirect_pop): Likewise.
This commit is contained in:
Simon Marchi 2017-01-10 11:30:47 -05:00
parent 98461510d3
commit 7becfd03ba
11 changed files with 34 additions and 32 deletions

View File

@ -1,3 +1,19 @@
2017-01-10 Simon Marchi <simon.marchi@ericsson.com>
* cli-out.c (cli_ui_out::do_redirect): Change return type to
void.
* cli-out.h (cli_ui_out::do_redirect): Likewise.
* mi/mi-out.c (mi_ui_out::do_redirect): Likewise.
* mi/mi-out.h (mi_ui_out::do_redirect): Likewise.
* ui-out.c (ui_out::redirect): Likewise.
* ui-out.h (ui_out::redirect, ui_out::do_redirect): Likewise.
* cli/cli-logging.c (set_logging_redirect): Update call site of
ui_out::redirect.
(handle_redirections): Likewise.
* scm-ports.c (ioscm_with_output_to_port_worker): Likewise.
* top.c (execute_command_to_string): Likewise.
* utils.c (do_ui_out_redirect_pop): Likewise.
2017-01-10 Simon Marchi <simon.marchi@ericsson.com>
* stack.c (_initialize_stack): Update "frame" command help message.

View File

@ -227,15 +227,13 @@ cli_ui_out::do_flush ()
and make it therefore active. OUTSTREAM as NULL will pop the last pushed
output stream; it is an internal error if it does not exist. */
int
void
cli_ui_out::do_redirect (ui_file *outstream)
{
if (outstream != NULL)
m_streams.push_back (outstream);
else
m_streams.pop_back ();
return 0;
}
/* local functions */

View File

@ -60,7 +60,7 @@ protected:
ATTRIBUTE_PRINTF (2,0);
virtual void do_wrap_hint (const char *identstring) override;
virtual void do_flush () override;
virtual int do_redirect (struct ui_file * outstream) override;
virtual void do_redirect (struct ui_file *outstream) override;
bool suppress_output ()
{ return m_suppress_output; }

View File

@ -130,13 +130,11 @@ set_logging_redirect (char *args, int from_tty, struct cmd_list_element *c)
/* There is a former output pushed on the ui_out_redirect stack. We
want to replace it by OUTPUT so we must pop the former value
first. We should either do both the pop and push or to do
neither of it. At least do not try to push OUTPUT if the pop
already failed. */
first. Ideally, we should either do both the pop and push or do
neither of them. */
if (uiout->redirect (NULL) < 0
|| uiout->redirect (output) < 0)
warning (_("Current output protocol does not support redirection"));
uiout->redirect (NULL);
uiout->redirect (output);
do_cleanups (cleanups);
}
@ -246,10 +244,7 @@ handle_redirections (int from_tty)
/* Don't do the redirect for MI, it confuses MI's ui-out scheme. */
if (!current_uiout->is_mi_like_p ())
{
if (current_uiout->redirect (output) < 0)
warning (_("Current output protocol does not support redirection"));
}
current_uiout->redirect (output);
}
static void

View File

@ -531,10 +531,8 @@ ioscm_with_output_to_port_worker (SCM port, SCM thunk, enum oport oport,
gdb_stderr = port_file;
else
{
if (current_uiout->redirect (port_file) < 0)
warning (_("Current output protocol does not support redirection"));
else
make_cleanup_ui_out_redirect_pop (current_uiout);
current_uiout->redirect (port_file);
make_cleanup_ui_out_redirect_pop (current_uiout);
gdb_stdout = port_file;
}

View File

@ -170,15 +170,13 @@ mi_ui_out::do_flush ()
gdb_flush (m_streams.back ());
}
int
void
mi_ui_out::do_redirect (ui_file *outstream)
{
if (outstream != NULL)
m_streams.push_back (outstream);
else
m_streams.pop_back ();
return 0;
}
void

View File

@ -67,7 +67,7 @@ protected:
ATTRIBUTE_PRINTF (2,0);
virtual void do_wrap_hint (const char *identstring) override;
virtual void do_flush () override;
virtual int do_redirect (struct ui_file * outstream) override;
virtual void do_redirect (struct ui_file *outstream) override;
virtual bool do_is_mi_like_p () override
{ return true; }

View File

@ -706,10 +706,8 @@ execute_command_to_string (char *p, int from_tty)
make_cleanup_ui_file_delete (str_file);
if (current_uiout->redirect (str_file) < 0)
warning (_("Current output protocol does not support redirection"));
else
make_cleanup_ui_out_redirect_pop (current_uiout);
current_uiout->redirect (str_file);
make_cleanup_ui_out_redirect_pop (current_uiout);
scoped_restore save_stdout
= make_scoped_restore (&gdb_stdout, str_file);

View File

@ -619,10 +619,10 @@ ui_out::flush ()
do_flush ();
}
int
void
ui_out::redirect (ui_file *outstream)
{
return do_redirect (outstream);
do_redirect (outstream);
}
/* Test the flags against the mask given. */

View File

@ -121,7 +121,7 @@ class ui_out
void flush ();
/* Redirect the output of a ui_out object temporarily. */
int redirect (ui_file *outstream);
void redirect (ui_file *outstream);
ui_out_flags test_flags (ui_out_flags mask);
@ -163,7 +163,7 @@ class ui_out
ATTRIBUTE_PRINTF (2,0) = 0;
virtual void do_wrap_hint (const char *identstring) = 0;
virtual void do_flush () = 0;
virtual int do_redirect (struct ui_file * outstream) = 0;
virtual void do_redirect (struct ui_file *outstream) = 0;
/* Set as not MI-like by default. It is overridden in subclasses if
necessary. */

View File

@ -218,8 +218,7 @@ do_ui_out_redirect_pop (void *arg)
{
struct ui_out *uiout = (struct ui_out *) arg;
if (uiout->redirect (NULL) < 0)
warning (_("Cannot restore redirection of the current output protocol"));
uiout->redirect (NULL);
}
/* Return a new cleanup that pops the last redirection by ui_out_redirect