From 29f943408122a7cffa25abb41def99833436f097 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 29 Apr 2018 23:12:06 -0600 Subject: [PATCH] Remove interp_ui_out The function interp_ui_out simply calls the interp_ui_out method. However, if it is passed a NULL interpreter, it first finds the current interpreter. I believe, though, that NULL is never passed here, and I think it's simpler to just remove this function and require callers to be more explicit. ChangeLog 2018-05-25 Tom Tromey * utils.c (fputs_maybe_filtered): Update. * linespec.c (decode_line_full): Update. * mi/mi-interp.c (mi_on_normal_stop_1, mi_tsv_modified) (mi_print_breakpoint_for_event, mi_solib_loaded) (mi_solib_unloaded, mi_command_param_changed, mi_memory_changed) (mi_user_selected_context_changed): Update. * mi/mi-main.c (mi_execute_command): Update. * cli/cli-script.c (execute_control_command): Update. * python/python.c (execute_gdb_command): Update. * solib.c (info_sharedlibrary_command): Update. * interps.c (interp_ui_out): Remove. * interps.h (interp_ui_out): Remove. --- gdb/ChangeLog | 15 +++++++++++++++ gdb/cli/cli-script.c | 2 +- gdb/interps.c | 12 ------------ gdb/interps.h | 1 - gdb/linespec.c | 2 +- gdb/mi/mi-interp.c | 16 ++++++++-------- gdb/mi/mi-main.c | 2 +- gdb/python/python.c | 2 +- gdb/solib.c | 2 +- gdb/utils.c | 2 +- 10 files changed, 29 insertions(+), 27 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1cf048bbb3..5cd551a4ef 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,18 @@ +2018-05-25 Tom Tromey + + * utils.c (fputs_maybe_filtered): Update. + * linespec.c (decode_line_full): Update. + * mi/mi-interp.c (mi_on_normal_stop_1, mi_tsv_modified) + (mi_print_breakpoint_for_event, mi_solib_loaded) + (mi_solib_unloaded, mi_command_param_changed, mi_memory_changed) + (mi_user_selected_context_changed): Update. + * mi/mi-main.c (mi_execute_command): Update. + * cli/cli-script.c (execute_control_command): Update. + * python/python.c (execute_gdb_command): Update. + * solib.c (info_sharedlibrary_command): Update. + * interps.c (interp_ui_out): Remove. + * interps.h (interp_ui_out): Remove. + 2018-05-25 Tom Tromey * tui/tui-interp.c (as_tui_interp): Use dynamic_cast. diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c index a62e4fe1c1..72de8ec1c7 100644 --- a/gdb/cli/cli-script.c +++ b/gdb/cli/cli-script.c @@ -689,7 +689,7 @@ execute_control_command (struct command_line *cmd, int from_tty) breakpoint commands while running the MI interpreter. */ interp *console = interp_lookup (current_ui, INTERP_CONSOLE); scoped_restore save_uiout - = make_scoped_restore (¤t_uiout, interp_ui_out (console)); + = make_scoped_restore (¤t_uiout, console->interp_ui_out ()); return execute_control_command_1 (cmd, from_tty); } diff --git a/gdb/interps.c b/gdb/interps.c index 162cd838ec..5884625856 100644 --- a/gdb/interps.c +++ b/gdb/interps.c @@ -251,18 +251,6 @@ set_top_level_interpreter (const char *name) interp_set (interp, true); } -/* Returns the current interpreter. */ - -struct ui_out * -interp_ui_out (struct interp *interp) -{ - struct ui_interp_info *ui_interp = get_current_interp_info (); - - if (interp == NULL) - interp = ui_interp->current_interpreter; - return interp->interp_ui_out (); -} - void current_interp_set_logging (ui_file_up logfile, bool logging_redirect) diff --git a/gdb/interps.h b/gdb/interps.h index 067c9ddefd..694149a6ca 100644 --- a/gdb/interps.h +++ b/gdb/interps.h @@ -98,7 +98,6 @@ extern struct interp *interp_lookup (struct ui *ui, const char *name); interpreter fails to initialize. */ extern void set_top_level_interpreter (const char *name); -extern struct ui_out *interp_ui_out (struct interp *interp); extern const char *interp_name (struct interp *interp); /* Temporarily set the current interpreter, and reset it on diff --git a/gdb/linespec.c b/gdb/linespec.c index dab50daa90..835650750c 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -3293,7 +3293,7 @@ decode_line_full (const struct event_location *location, int flags, if (select_mode == NULL) { - if (interp_ui_out (top_level_interpreter ())->is_mi_like_p ()) + if (top_level_interpreter ()->interp_ui_out ()->is_mi_like_p ()) select_mode = multiple_symbols_all; else select_mode = multiple_symbols_select_mode (); diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c index 7536817f43..99ce1eb5d6 100644 --- a/gdb/mi/mi-interp.c +++ b/gdb/mi/mi-interp.c @@ -625,7 +625,7 @@ mi_on_normal_stop_1 (struct bpstats *bs, int print_frame) /* Since this can be called when CLI command is executing, using cli interpreter, be sure to use MI uiout for output, not the current one. */ - struct ui_out *mi_uiout = interp_ui_out (top_level_interpreter ()); + struct ui_out *mi_uiout = top_level_interpreter ()->interp_ui_out (); struct mi_interp *mi = (struct mi_interp *) top_level_interpreter (); if (print_frame) @@ -802,7 +802,7 @@ mi_tsv_modified (const struct trace_state_variable *tsv) if (mi == NULL) continue; - mi_uiout = interp_ui_out (top_level_interpreter ()); + mi_uiout = top_level_interpreter ()->interp_ui_out (); target_terminal::scoped_restore_terminal_state term_state; target_terminal::ours_for_output (); @@ -829,7 +829,7 @@ mi_tsv_modified (const struct trace_state_variable *tsv) static void mi_print_breakpoint_for_event (struct mi_interp *mi, breakpoint *bp) { - ui_out *mi_uiout = interp_ui_out (mi); + ui_out *mi_uiout = mi->interp_ui_out (); /* We want the output from print_breakpoint to go to mi->event_channel. One approach would be to just call @@ -1090,7 +1090,7 @@ mi_solib_loaded (struct so_list *solib) if (mi == NULL) continue; - uiout = interp_ui_out (top_level_interpreter ()); + uiout = top_level_interpreter ()->interp_ui_out (); target_terminal::scoped_restore_terminal_state term_state; target_terminal::ours_for_output (); @@ -1118,7 +1118,7 @@ mi_solib_unloaded (struct so_list *solib) if (mi == NULL) continue; - uiout = interp_ui_out (top_level_interpreter ()); + uiout = top_level_interpreter ()->interp_ui_out (); target_terminal::scoped_restore_terminal_state term_state; target_terminal::ours_for_output (); @@ -1157,7 +1157,7 @@ mi_command_param_changed (const char *param, const char *value) if (mi == NULL) continue; - mi_uiout = interp_ui_out (top_level_interpreter ()); + mi_uiout = top_level_interpreter ()->interp_ui_out (); target_terminal::scoped_restore_terminal_state term_state; target_terminal::ours_for_output (); @@ -1193,7 +1193,7 @@ mi_memory_changed (struct inferior *inferior, CORE_ADDR memaddr, if (mi == NULL) continue; - mi_uiout = interp_ui_out (top_level_interpreter ()); + mi_uiout = top_level_interpreter ()->interp_ui_out (); target_terminal::scoped_restore_terminal_state term_state; target_terminal::ours_for_output (); @@ -1246,7 +1246,7 @@ mi_user_selected_context_changed (user_selected_what selection) if (mi == NULL) continue; - mi_uiout = interp_ui_out (top_level_interpreter ()); + mi_uiout = top_level_interpreter ()->interp_ui_out (); mi_uiout->redirect (mi->event_channel); ui_out_redirect_pop redirect_popper (mi_uiout); diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c index 13556d4d93..76e783daf9 100644 --- a/gdb/mi/mi-main.c +++ b/gdb/mi/mi-main.c @@ -1993,7 +1993,7 @@ mi_execute_command (const char *cmd, int from_tty) if (/* The notifications are only output when the top-level interpreter (specified on the command line) is MI. */ - interp_ui_out (top_level_interpreter ())->is_mi_like_p () + top_level_interpreter ()->interp_ui_out ()->is_mi_like_p () /* Don't try report anything if there are no threads -- the program is dead. */ && thread_count () != 0 diff --git a/gdb/python/python.c b/gdb/python/python.c index db37331dc4..c29e7d7a6b 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -609,7 +609,7 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw) /* Use the console interpreter uiout to have the same print format for console or MI. */ interp = interp_lookup (current_ui, "console"); - current_uiout = interp_ui_out (interp); + current_uiout = interp->interp_ui_out (); scoped_restore preventer = prevent_dont_repeat (); if (to_string) diff --git a/gdb/solib.c b/gdb/solib.c index 5011bd7df1..b28ebc628c 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -1093,7 +1093,7 @@ info_sharedlibrary_command (const char *pattern, int from_tty) uiout->field_skip ("to"); } - if (! interp_ui_out (top_level_interpreter ())->is_mi_like_p () + if (! top_level_interpreter ()->interp_ui_out ()->is_mi_like_p () && so->symbols_loaded && !objfile_has_symbols (so->objfile)) { diff --git a/gdb/utils.c b/gdb/utils.c index 9c5bf68e5a..a2e933bc8d 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -1683,7 +1683,7 @@ fputs_maybe_filtered (const char *linebuffer, struct ui_file *stream, || batch_flag || (lines_per_page == UINT_MAX && chars_per_line == UINT_MAX) || top_level_interpreter () == NULL - || interp_ui_out (top_level_interpreter ())->is_mi_like_p ()) + || top_level_interpreter ()->interp_ui_out ()->is_mi_like_p ()) { fputs_unfiltered (linebuffer, stream); return;