From patchwork Mon Apr 30 05:12:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 27030 Received: (qmail 116608 invoked by alias); 30 Apr 2018 05:12:54 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 116597 invoked by uid 89); 30 Apr 2018 05:12:54 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=linespec.c, linespecc, UD:linespec.c, 8027 X-HELO: gateway23.websitewelcome.com Received: from gateway23.websitewelcome.com (HELO gateway23.websitewelcome.com) (192.185.49.60) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 30 Apr 2018 05:12:52 +0000 Received: from cm13.websitewelcome.com (cm13.websitewelcome.com [100.42.49.6]) by gateway23.websitewelcome.com (Postfix) with ESMTP id C16B82A4602 for ; Mon, 30 Apr 2018 00:12:10 -0500 (CDT) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with SMTP id D16gfjbPyQUwqD16gfTfgy; Mon, 30 Apr 2018 00:12:10 -0500 X-Authority-Reason: nr=8 Received: from 97-122-176-117.hlrn.qwest.net ([97.122.176.117]:35688 helo=bapiya.Home) by box5379.bluehost.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.89_1) (envelope-from ) id 1fD16g-0025zZ-Hq; Mon, 30 Apr 2018 00:12:10 -0500 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [RFA 3/4] Remove interp_ui_out Date: Sun, 29 Apr 2018 23:12:06 -0600 Message-Id: <20180430051207.19979-4-tom@tromey.com> In-Reply-To: <20180430051207.19979-1-tom@tromey.com> References: <20180430051207.19979-1-tom@tromey.com> X-BWhitelist: no X-Source-L: No X-Exim-ID: 1fD16g-0025zZ-Hq X-Source-Sender: 97-122-176-117.hlrn.qwest.net (bapiya.Home) [97.122.176.117]:35688 X-Source-Auth: tom+tromey.com X-Email-Count: 4 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes 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-04-29 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/cli/cli-script.c b/gdb/cli/cli-script.c index cdfda113a7..717dbe4c20 100644 --- a/gdb/cli/cli-script.c +++ b/gdb/cli/cli-script.c @@ -642,7 +642,7 @@ execute_control_command (struct command_line *cmd) 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); } 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 194d50cb3a..55ab46e0ec 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 d7354606b5..980af477d3 100644 --- a/gdb/mi/mi-main.c +++ b/gdb/mi/mi-main.c @@ -1996,7 +1996,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 9eae8a1aef..27e6d9a577 100644 --- a/gdb/python/python.c +++ b/gdb/python/python.c @@ -588,7 +588,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 b957b0dc5c..f6f4b97536 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -1682,7 +1682,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;