Change tui_set_layout to return void

tui_set_layout can't meaningfully be called with UNDEFINED_LAYOUT; and
instead of trying to handle this case, simply assert and have the
function return void.  No caller was checking the return value anyway.

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

	* tui/tui-layout.h (tui/tui-layout): Return void.
	* tui/tui-layout.c (tui_set_layout): Return void.  Add assert.
This commit is contained in:
Tom Tromey
2019-06-30 20:34:57 -06:00
parent 4e1e56b981
commit b7fbad913e
3 changed files with 81 additions and 83 deletions

View File

@ -1,3 +1,8 @@
2019-07-17 Tom Tromey <tom@tromey.com>
* tui/tui-layout.h (tui/tui-layout): Return void.
* tui/tui-layout.c (tui_set_layout): Return void. Add assert.
2019-07-17 Tom Tromey <tom@tromey.com> 2019-07-17 Tom Tromey <tom@tromey.com>
* tui/tui-layout.c (show_source_disasm_command, show_data): * tui/tui-layout.c (show_source_disasm_command, show_data):

View File

@ -113,104 +113,97 @@ show_layout (enum tui_layout_type layout)
/* Function to set the layout to SRC_COMMAND, DISASSEM_COMMAND, /* Function to set the layout to SRC_COMMAND, DISASSEM_COMMAND,
SRC_DISASSEM_COMMAND, SRC_DATA_COMMAND, or DISASSEM_DATA_COMMAND. */ SRC_DISASSEM_COMMAND, SRC_DATA_COMMAND, or DISASSEM_DATA_COMMAND. */
enum tui_status void
tui_set_layout (enum tui_layout_type layout_type) tui_set_layout (enum tui_layout_type layout_type)
{ {
enum tui_status status = TUI_SUCCESS; gdb_assert (layout_type != UNDEFINED_LAYOUT);
if (layout_type != UNDEFINED_LAYOUT) enum tui_layout_type cur_layout = tui_current_layout ();
struct gdbarch *gdbarch;
CORE_ADDR addr;
struct tui_win_info *win_with_focus = tui_win_with_focus ();
struct tui_layout_def *layout_def = tui_layout_def ();
extract_display_start_addr (&gdbarch, &addr);
enum tui_layout_type new_layout = layout_type;
if (new_layout != cur_layout)
{ {
enum tui_layout_type cur_layout = tui_current_layout (); show_layout (new_layout);
struct gdbarch *gdbarch;
CORE_ADDR addr;
struct tui_win_info *win_with_focus = tui_win_with_focus ();
struct tui_layout_def *layout_def = tui_layout_def ();
extract_display_start_addr (&gdbarch, &addr); /* Now determine where focus should be. */
if (win_with_focus != TUI_CMD_WIN)
enum tui_layout_type new_layout = layout_type;
if (new_layout != cur_layout)
{ {
show_layout (new_layout); switch (new_layout)
/* Now determine where focus should be. */
if (win_with_focus != TUI_CMD_WIN)
{ {
switch (new_layout) case SRC_COMMAND:
{ tui_set_win_focus_to (TUI_SRC_WIN);
case SRC_COMMAND: layout_def->display_mode = SRC_WIN;
tui_set_win_focus_to (TUI_SRC_WIN); break;
layout_def->display_mode = SRC_WIN; case DISASSEM_COMMAND:
break; /* The previous layout was not showing code.
case DISASSEM_COMMAND: This can happen if there is no source
/* The previous layout was not showing code. available:
This can happen if there is no source
available:
1. if the source file is in another dir OR 1. if the source file is in another dir OR
2. if target was compiled without -g 2. if target was compiled without -g
We still want to show the assembly though! */ We still want to show the assembly though! */
tui_get_begin_asm_address (&gdbarch, &addr); tui_get_begin_asm_address (&gdbarch, &addr);
tui_set_win_focus_to (TUI_DISASM_WIN); tui_set_win_focus_to (TUI_DISASM_WIN);
layout_def->display_mode = DISASSEM_WIN; layout_def->display_mode = DISASSEM_WIN;
break; break;
case SRC_DISASSEM_COMMAND: case SRC_DISASSEM_COMMAND:
/* The previous layout was not showing code. /* The previous layout was not showing code.
This can happen if there is no source This can happen if there is no source
available: available:
1. if the source file is in another dir OR 1. if the source file is in another dir OR
2. if target was compiled without -g 2. if target was compiled without -g
We still want to show the assembly though! */ We still want to show the assembly though! */
tui_get_begin_asm_address (&gdbarch, &addr); tui_get_begin_asm_address (&gdbarch, &addr);
if (win_with_focus == TUI_SRC_WIN) if (win_with_focus == TUI_SRC_WIN)
tui_set_win_focus_to (TUI_SRC_WIN); tui_set_win_focus_to (TUI_SRC_WIN);
else else
tui_set_win_focus_to (TUI_DISASM_WIN); tui_set_win_focus_to (TUI_DISASM_WIN);
break; break;
case SRC_DATA_COMMAND: case SRC_DATA_COMMAND:
if (win_with_focus != TUI_DATA_WIN) if (win_with_focus != TUI_DATA_WIN)
tui_set_win_focus_to (TUI_SRC_WIN); tui_set_win_focus_to (TUI_SRC_WIN);
else else
tui_set_win_focus_to (TUI_DATA_WIN); tui_set_win_focus_to (TUI_DATA_WIN);
layout_def->display_mode = SRC_WIN; layout_def->display_mode = SRC_WIN;
break; break;
case DISASSEM_DATA_COMMAND: case DISASSEM_DATA_COMMAND:
/* The previous layout was not showing code. /* The previous layout was not showing code.
This can happen if there is no source This can happen if there is no source
available: available:
1. if the source file is in another dir OR 1. if the source file is in another dir OR
2. if target was compiled without -g 2. if target was compiled without -g
We still want to show the assembly though! */ We still want to show the assembly though! */
tui_get_begin_asm_address (&gdbarch, &addr); tui_get_begin_asm_address (&gdbarch, &addr);
if (win_with_focus != TUI_DATA_WIN) if (win_with_focus != TUI_DATA_WIN)
tui_set_win_focus_to (TUI_DISASM_WIN); tui_set_win_focus_to (TUI_DISASM_WIN);
else else
tui_set_win_focus_to (TUI_DATA_WIN); tui_set_win_focus_to (TUI_DATA_WIN);
layout_def->display_mode = DISASSEM_WIN; layout_def->display_mode = DISASSEM_WIN;
break; break;
default: default:
break; break;
}
} }
/*
* Now update the window content.
*/
tui_update_source_windows_with_addr (gdbarch, addr);
if (new_layout == SRC_DATA_COMMAND
|| new_layout == DISASSEM_DATA_COMMAND)
tui_show_registers (TUI_DATA_WIN->current_group);
} }
/*
* Now update the window content.
*/
tui_update_source_windows_with_addr (gdbarch, addr);
if (new_layout == SRC_DATA_COMMAND
|| new_layout == DISASSEM_DATA_COMMAND)
tui_show_registers (TUI_DATA_WIN->current_group);
} }
else
status = TUI_FAILURE;
return status;
} }
/* Add the specified window to the layout in a logical way. This /* Add the specified window to the layout in a logical way. This

View File

@ -30,6 +30,6 @@ extern int tui_default_win_height (enum tui_win_type,
enum tui_layout_type); enum tui_layout_type);
extern int tui_default_win_viewport_height (enum tui_win_type, extern int tui_default_win_viewport_height (enum tui_win_type,
enum tui_layout_type); enum tui_layout_type);
extern enum tui_status tui_set_layout (enum tui_layout_type); extern void tui_set_layout (enum tui_layout_type);
#endif /* TUI_TUI_LAYOUT_H */ #endif /* TUI_TUI_LAYOUT_H */