From 753ff9bd837e2ba183e3ff789847a81221561392 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Sun, 29 Apr 2018 23:12:04 -0600 Subject: [PATCH] Use scoped_restore in a couple of interp-related places While looking through the "interp" code I found a couple of spots that could use scoped_restore. ChangeLog 2018-05-25 Tom Tromey * cli/cli-interp.c (safe_execute_command): Use scoped_restore. * interps.c (interp_exec): Use scoped_restore. --- gdb/ChangeLog | 5 +++++ gdb/cli/cli-interp.c | 8 ++------ gdb/interps.c | 13 +++---------- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b697326e56a..3e199b67113 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2018-05-25 Tom Tromey + + * cli/cli-interp.c (safe_execute_command): Use scoped_restore. + * interps.c (interp_exec): Use scoped_restore. + 2018-05-25 Tom Tromey * remote.c (remote_target::remote_file_get): Use diff --git a/gdb/cli/cli-interp.c b/gdb/cli/cli-interp.c index bbee8098807..0663301c19d 100644 --- a/gdb/cli/cli-interp.c +++ b/gdb/cli/cli-interp.c @@ -356,11 +356,10 @@ safe_execute_command (struct ui_out *command_uiout, const char *command, int from_tty) { struct gdb_exception e = exception_none; - struct ui_out *saved_uiout; /* Save and override the global ``struct ui_out'' builder. */ - saved_uiout = current_uiout; - current_uiout = command_uiout; + scoped_restore saved_uiout = make_scoped_restore (¤t_uiout, + command_uiout); TRY { @@ -372,9 +371,6 @@ safe_execute_command (struct ui_out *command_uiout, const char *command, } END_CATCH - /* Restore the global builder. */ - current_uiout = saved_uiout; - /* FIXME: cagney/2005-01-13: This shouldn't be needed. Instead the caller should print the exception. */ exception_print (gdb_stderr, e); diff --git a/gdb/interps.c b/gdb/interps.c index 61db7f4bdf1..162cd838ec3 100644 --- a/gdb/interps.c +++ b/gdb/interps.c @@ -354,18 +354,11 @@ interp_exec (struct interp *interp, const char *command_str) { struct ui_interp_info *ui_interp = get_current_interp_info (); - struct gdb_exception ex; - struct interp *save_command_interp; - /* See `command_interp' for why we do this. */ - save_command_interp = ui_interp->command_interpreter; - ui_interp->command_interpreter = interp; - - ex = interp->exec (command_str); - - ui_interp->command_interpreter = save_command_interp; + scoped_restore save_command_interp + = make_scoped_restore (&ui_interp->command_interpreter, interp); - return ex; + return interp->exec (command_str); } /* A convenience routine that nulls out all the common command hooks. -- 2.30.2