Consolidate "if"s in tui_show_frame_info

tui_show_frame_info has two parallel "if"s with the same condition and
no intervening code.  The second "if" perhaps wasn't obviously
identical, but earlier refactorings made it clearer, by pointing out
that only source and disassembly windows can be handled here.  This
merges the two statements.

gdb/ChangeLog
2019-07-17  Tom Tromey  <tom@tromey.com>

	* tui/tui-stack.c (tui_show_frame_info): Consolidate "if"s.
This commit is contained in:
Tom Tromey
2019-06-23 21:00:01 -06:00
parent 5813316fa4
commit 9ad7fdef7c
2 changed files with 31 additions and 35 deletions

View File

@ -1,3 +1,7 @@
2019-07-17 Tom Tromey <tom@tromey.com>
* tui/tui-stack.c (tui_show_frame_info): Consolidate "if"s.
2019-07-17 Tom Tromey <tom@tromey.com> 2019-07-17 Tom Tromey <tom@tromey.com>
* tui/tui-winsource.c (tui_update_source_window_as_is) * tui/tui-winsource.c (tui_update_source_window_as_is)

View File

@ -341,8 +341,6 @@ tui_show_frame_info (struct frame_info *fi)
if (fi) if (fi)
{ {
int start_line;
CORE_ADDR low;
struct tui_locator_window *locator = tui_locator_win_info_ptr (); struct tui_locator_window *locator = tui_locator_win_info_ptr ();
int source_already_displayed; int source_already_displayed;
CORE_ADDR pc; CORE_ADDR pc;
@ -372,32 +370,15 @@ tui_show_frame_info (struct frame_info *fi)
return 0; return 0;
tui_show_locator_content (); tui_show_locator_content ();
start_line = 0;
for (struct tui_source_window_base *win_info : tui_source_windows ()) for (struct tui_source_window_base *win_info : tui_source_windows ())
{ {
if (win_info == TUI_SRC_WIN) if (win_info == TUI_SRC_WIN)
{ {
start_line = (locator->line_no - int start_line = (locator->line_no -
(win_info->viewport_height / 2)) + 1; (win_info->viewport_height / 2)) + 1;
if (start_line <= 0) if (start_line <= 0)
start_line = 1; start_line = 1;
}
else
{
if (find_pc_partial_function (get_frame_pc (fi),
NULL, &low, NULL) == 0)
{
/* There is no symbol available for current PC. There is no
safe way how to "disassemble backwards". */
low = get_frame_pc (fi);
}
else
low = tui_get_low_disassembly_address (get_frame_arch (fi),
low, get_frame_pc (fi));
}
if (win_info == TUI_SRC_WIN)
{
struct tui_line_or_address l; struct tui_line_or_address l;
l.loa = LOA_LINE; l.loa = LOA_LINE;
@ -415,23 +396,34 @@ tui_show_frame_info (struct frame_info *fi)
} }
else else
{ {
if (win_info == TUI_DISASM_WIN) CORE_ADDR low;
{
struct tui_line_or_address a;
a.loa = LOA_ADDRESS; if (find_pc_partial_function (get_frame_pc (fi),
a.u.addr = low; NULL, &low, NULL) == 0)
if (!tui_addr_is_displayed (locator->addr, {
win_info, TRUE)) /* There is no symbol available for current PC. There is no
tui_update_source_window (win_info, get_frame_arch (fi), safe way how to "disassemble backwards". */
sal.symtab, a, TRUE); low = get_frame_pc (fi);
else }
{ else
a.u.addr = locator->addr; low = tui_get_low_disassembly_address (get_frame_arch (fi),
win_info->set_is_exec_point_at (a); low, get_frame_pc (fi));
}
struct tui_line_or_address a;
a.loa = LOA_ADDRESS;
a.u.addr = low;
if (!tui_addr_is_displayed (locator->addr,
win_info, TRUE))
tui_update_source_window (win_info, get_frame_arch (fi),
sal.symtab, a, TRUE);
else
{
a.u.addr = locator->addr;
win_info->set_is_exec_point_at (a);
} }
} }
tui_update_exec_info (win_info); tui_update_exec_info (win_info);
} }