diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a7a87ee797..9ee44fbca8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2017-09-16 Simon Marchi + + * mi/mi-main.c (mi_load_progress): Restore current_uiout using a + scoped_restore. + 2017-09-16 Simon Marchi * mi/mi-main.c (mi_load_progress): Make uiout variable diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c index 0359dc123f..c06ef18b41 100644 --- a/gdb/mi/mi-main.c +++ b/gdb/mi/mi-main.c @@ -2324,13 +2324,11 @@ mi_load_progress (const char *section_name, static steady_clock::time_point last_update; static char *previous_sect_name = NULL; int new_section; - struct ui_out *saved_uiout; struct mi_interp *mi = (struct mi_interp *) current_interpreter (); /* This function is called through deprecated_show_load_progress which means uiout may not be correct. Fix it for the duration of this function. */ - saved_uiout = current_uiout; std::unique_ptr uiout; @@ -2344,7 +2342,8 @@ mi_load_progress (const char *section_name, else return; - current_uiout = uiout.get (); + scoped_restore save_uiout + = make_scoped_restore (¤t_uiout, uiout.get ()); new_section = (previous_sect_name ? strcmp (previous_sect_name, section_name) : 1); @@ -2386,8 +2385,6 @@ mi_load_progress (const char *section_name, fputs_unfiltered ("\n", mi->raw_stdout); gdb_flush (mi->raw_stdout); } - - current_uiout = saved_uiout; } static void