old-cross-binutils/gdb/tui
Patrick Palka b5fca6d728 Be lazy about refreshing the windows in tui_show_frame_info (PR tui/13378)
tui_show_frame_info is responsible for updating the visible windows
following a change in frame information (that being the currently
selected frame, PC, line number, etc).  Currently it always redraws and
refreshes each window even if frame information has not changed.  This
behavior is inefficient and helps contribute to the occassional
flickering of the TUI as described in the mentioned PR.

This patch makes tui_show_frame_info refresh the windows only if frame
information has changed.  Determining whether frame information has
changed is done indirectly by determining whether the locator has
changed.  This approach is convenient and yet sensible because the
locator contains all the relevant info we need to check anyway: the
current PC, the line number, the name of the executable and the name of
the current function.  Probably only the PC is really necessary to
check, but it doesn't hurt to check every field.

Effectively, with this patch, consecutive calls to select_frame with the
same frame/PC no longer cause TUI's frame information to be updated
multiple times.

gdb/ChangeLog:

	PR tui/13378
	* tui/tui-stack.c (tui_set_locator_info): Change prototype to
	return an int instead of void.  Return whether the locator
	window has changed.
	(tui_show_frame_info): If the locator info has not changed, then
	bail out early to avoid refreshing the windows.
2015-06-30 13:56:17 -04:00
..
ChangeLog-1998-2003
tui-command.c Remove buggy xterm workaround in tui_dispatch_ctrl_char() 2015-05-14 08:18:06 -04:00
tui-command.h Speed up GDB's TUI output 2015-02-04 12:27:28 +01:00
tui-data.c gdb: Remove register class specific layout names. 2015-05-21 20:47:24 +02:00
tui-data.h gdb: Remove register class specific layout names. 2015-05-21 20:47:24 +02:00
tui-disasm.c Make type-safe the 'content' field of struct tui_gen_win_info 2015-04-27 21:19:53 -04:00
tui-disasm.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
tui-file.c Speed up GDB's TUI output 2015-02-04 12:27:28 +01:00
tui-file.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
tui-hooks.c Call target_terminal_ours_for_output() before refreshing TUI's frame info 2015-06-16 09:31:05 -04:00
tui-hooks.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
tui-interp.c Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
tui-io.c Fix undefined behavior in TUI's TAB expansion 2015-03-21 10:48:34 +02:00
tui-io.h Make sure TABs are expanded in TUI windows on MS-Windows. 2015-01-31 10:47:14 +02:00
tui-layout.c gdb: Add cleanup to avoid memory leak on error. 2015-05-21 20:49:00 +02:00
tui-layout.h gdb: Remove register class specific layout names. 2015-05-21 20:47:24 +02:00
tui-out.c Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
tui-regs.c gdb: Rework command completion on 'tui reg'. 2015-06-13 21:28:53 +01:00
tui-regs.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
tui-source.c TUI: avoid calling strcpy() on identical string objects 2015-04-27 21:19:58 -04:00
tui-source.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
tui-stack.c Be lazy about refreshing the windows in tui_show_frame_info (PR tui/13378) 2015-06-30 13:56:17 -04:00
tui-stack.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
tui-win.c Add tab completion for TUI's "focus" command 2015-06-26 10:11:28 -04:00
tui-win.h Really add a prototype for tui_rehighlight_all. 2015-01-16 19:58:04 +02:00
tui-windata.c C++ keyword cleanliness, mostly auto-generated 2015-02-27 16:33:07 +00:00
tui-windata.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
tui-wingeneral.c Do not increment of decrement enums 2015-02-27 17:29:11 +00:00
tui-wingeneral.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
tui-winsource.c Make type-safe the 'content' field of struct tui_gen_win_info 2015-04-27 21:19:53 -04:00
tui-winsource.h Update year range in copyright notice of all files owned by the GDB project. 2015-01-01 13:32:14 +04:00
tui.c gdb: New 'tui enable' and 'tui disable' commands. 2015-05-22 12:18:49 +02:00
tui.h gdb: Remove register class specific layout names. 2015-05-21 20:47:24 +02:00