diff options
author | Tom Tromey <tom@tromey.com> | 2017-04-28 22:59:24 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2017-08-03 07:59:01 -0600 |
commit | 31b68d4ad72ebb153e48e16c8d9edf3676a8af38 (patch) | |
tree | bb52dcb5e81a91b9fe15e17c8b421a453949ac03 /gdb/tui | |
parent | 2ec845e758762030f2333c21fa532fc57fe3762f (diff) | |
download | gdb-31b68d4ad72ebb153e48e16c8d9edf3676a8af38.zip gdb-31b68d4ad72ebb153e48e16c8d9edf3676a8af38.tar.gz gdb-31b68d4ad72ebb153e48e16c8d9edf3676a8af38.tar.bz2 |
Replace tui_restore_gdbout with scoped_restore
This patch replaces tui_restore_gdbout (a cleaup function) with a use
of scoped_restore. This one is broken out into its own patch because
it might slightly change the behavior of gdb: it saves and restores
pagination_enabled, whereas the tui_restore_gdbout unconditionally set
pagination_enabled to 1; and I think this warrants closer review.
ChangeLog
2017-08-03 Tom Tromey <tom@tromey.com>
* tui/tui-regs.c (tui_restore_gdbout): Remove.
(tui_register_format): Use scoped_restore.
Diffstat (limited to 'gdb/tui')
-rw-r--r-- | gdb/tui/tui-regs.c | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c index c418203..217fff2 100644 --- a/gdb/tui/tui-regs.c +++ b/gdb/tui/tui-regs.c @@ -707,13 +707,6 @@ TUI command to control the register window."), tuicmd); ** STATIC LOCAL FUNCTIONS ** ******************************************/ -static void -tui_restore_gdbout (void *ui) -{ - gdb_stdout = (struct ui_file*) ui; - pagination_enabled = 1; -} - /* Get the register from the frame and return a printable representation of it. */ @@ -721,17 +714,14 @@ static char * tui_register_format (struct frame_info *frame, int regnum) { struct gdbarch *gdbarch = get_frame_arch (frame); - struct ui_file *old_stdout; - struct cleanup *cleanups; - char *p, *s; - char *ret; string_file stream; - pagination_enabled = 0; - old_stdout = gdb_stdout; - gdb_stdout = &stream; - cleanups = make_cleanup (tui_restore_gdbout, (void*) old_stdout); + scoped_restore save_pagination + = make_scoped_restore (&pagination_enabled, 0); + scoped_restore save_stdout + = make_scoped_restore (&gdb_stdout, &stream); + gdbarch_print_registers_info (gdbarch, &stream, frame, regnum, 1); /* Remove the possible \n. */ @@ -740,11 +730,7 @@ tui_register_format (struct frame_info *frame, int regnum) str.resize (str.size () - 1); /* Expand tabs into spaces, since ncurses on MS-Windows doesn't. */ - ret = tui_expand_tabs (str.c_str (), 0); - - do_cleanups (cleanups); - - return ret; + return tui_expand_tabs (str.c_str (), 0); } /* Get the register value from the given frame and format it for the |