[PATCH 05/66] Simplify command window creation

Tom Tromey
2019-06-23T22:43:45Z

make_command_window is never called when *win_info_ptr is non-NULL, so
this patch simplifies the function by removing the parameter and
having it return its result directly. This in turn makes it more
obvious that a NULL check in show_source_disasm_command can be
removed.

gdb/ChangeLog
2019-06-23 Tom Tromey <tom@tromey.com>

* tui/tui-layout.c (make_command_window): Remove win_info_ptr
parameter. Return the new window.
(show_source_disasm_command): Update and remove NULL check.
(show_source_or_disasm_and_command): Update.
---
gdb/ChangeLog | 7 +++
gdb/tui/tui-layout.c | 146 ++++++++++++++++++++-----------------------
2 files changed, 76 insertions(+), 77 deletions(-)

diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 695c56012c1..3eddc56578b 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -52,7 +52,7 @@ static void show_source_or_disasm_and_command (enum tui_layout_type);
static void make_source_or_disasm_window (struct tui_win_info **,
enum tui_win_type,
int, int);
-static void make_command_window (struct tui_win_info **, int, int);
+static struct tui_win_info *make_command_window (int, int);
static void make_source_window (struct tui_win_info **, int, int);
static void make_disasm_window (struct tui_win_info **, int, int);
static void make_data_window (struct tui_win_info **, int, int);
@@ -540,20 +540,19 @@ prev_layout (void)

-static void
-make_command_window (struct tui_win_info **win_info_ptr,
- int height, int origin_y)
+static struct tui_win_info *
+make_command_window (int height, int origin_y)
{
- *win_info_ptr
- = (struct tui_win_info *) init_and_make_win (*win_info_ptr,
+ struct tui_win_info *result
+ = (struct tui_win_info *) init_and_make_win (NULL,
CMD_WIN,
height,
tui_term_width (),
0,
origin_y,
DONT_BOX_WINDOW);
-
- (*win_info_ptr)->can_highlight = FALSE;
+ result->can_highlight = FALSE;
+ return result;
}

@@ -650,76 +649,69 @@ show_source_disasm_command (void)
tui_make_visible (TUI_SRC_WIN->detail.source_info.execution_info);
TUI_SRC_WIN->detail.source_info.has_locator = FALSE;;
}
- if (TUI_SRC_WIN != NULL)
- {
- struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();

- tui_show_source_content (TUI_SRC_WIN);
- if (TUI_DISASM_WIN == NULL)
- {
- make_disasm_window (&TUI_DISASM_WIN, asm_height, src_height - 1);
- locator
- = ((struct tui_gen_win_info *)
- init_and_make_win (locator,
- LOCATOR_WIN,
- 2 /* 1 */ ,
- tui_term_width (),
- 0,
- (src_height + asm_height) - 1,
- DONT_BOX_WINDOW));
- }
- else
- {
- init_gen_win_info (locator,
- LOCATOR_WIN,
- 2 /* 1 */ ,
- tui_term_width (),
- 0,
- (src_height + asm_height) - 1);
- TUI_DISASM_WIN->detail.source_info.has_locator = TRUE;
- init_gen_win_info (&TUI_DISASM_WIN->generic,
- TUI_DISASM_WIN->generic.type,
- asm_height,
- TUI_DISASM_WIN->generic.width,
- TUI_DISASM_WIN->detail.source_info.execution_info->width,
- src_height - 1);
- init_gen_win_info (TUI_DISASM_WIN->detail.source_info.execution_info,
- EXEC_INFO_WIN,
- asm_height,
- 3,
- 0,
- src_height - 1);
- TUI_DISASM_WIN->can_highlight = TRUE;
- tui_make_visible (&TUI_DISASM_WIN->generic);
- tui_make_visible (TUI_DISASM_WIN->detail.source_info.execution_info);
- }
- if (TUI_DISASM_WIN != NULL)
- {
- TUI_SRC_WIN->detail.source_info.has_locator = FALSE;
- TUI_DISASM_WIN->detail.source_info.has_locator = TRUE;
- tui_make_visible (locator);
- tui_show_locator_content ();
- tui_show_source_content (TUI_DISASM_WIN);
-
- if (TUI_CMD_WIN == NULL)
- make_command_window (&TUI_CMD_WIN,
- cmd_height,
- tui_term_height () - cmd_height);
- else
- {
- init_gen_win_info (&TUI_CMD_WIN->generic,
- TUI_CMD_WIN->generic.type,
- TUI_CMD_WIN->generic.height,
- TUI_CMD_WIN->generic.width,
- 0,
- TUI_CMD_WIN->generic.origin.y);
- TUI_CMD_WIN->can_highlight = FALSE;
- tui_make_visible (&TUI_CMD_WIN->generic);
- }
- if (TUI_CMD_WIN != NULL)
- tui_refresh_win (&TUI_CMD_WIN->generic);
- }
+ struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();
+
+ tui_show_source_content (TUI_SRC_WIN);
+ if (TUI_DISASM_WIN == NULL)
+ {
+ make_disasm_window (&TUI_DISASM_WIN, asm_height, src_height - 1);
+ locator
+ = ((struct tui_gen_win_info *)
+ init_and_make_win (locator,
+ LOCATOR_WIN,
+ 2 /* 1 */ ,
+ tui_term_width (),
+ 0,
+ (src_height + asm_height) - 1,
+ DONT_BOX_WINDOW));
+ }
+ else
+ {
+ init_gen_win_info (locator,
+ LOCATOR_WIN,
+ 2 /* 1 */ ,
+ tui_term_width (),
+ 0,
+ (src_height + asm_height) - 1);
+ TUI_DISASM_WIN->detail.source_info.has_locator = TRUE;
+ init_gen_win_info (&TUI_DISASM_WIN->generic,
+ TUI_DISASM_WIN->generic.type,
+ asm_height,
+ TUI_DISASM_WIN->generic.width,
+ TUI_DISASM_WIN->detail.source_info.execution_info->width,
+ src_height - 1);
+ init_gen_win_info (TUI_DISASM_WIN->detail.source_info.execution_info,
+ EXEC_INFO_WIN,
+ asm_height,
+ 3,
+ 0,
+ src_height - 1);
+ TUI_DISASM_WIN->can_highlight = TRUE;
+ tui_make_visible (&TUI_DISASM_WIN->generic);
+ tui_make_visible (TUI_DISASM_WIN->detail.source_info.execution_info);
+ }
+ TUI_SRC_WIN->detail.source_info.has_locator = FALSE;
+ TUI_DISASM_WIN->detail.source_info.has_locator = TRUE;
+ tui_make_visible (locator);
+ tui_show_locator_content ();
+ tui_show_source_content (TUI_DISASM_WIN);
+
+ if (TUI_CMD_WIN == NULL)
+ TUI_CMD_WIN = make_command_window (cmd_height,
+ tui_term_height () - cmd_height);
+ else
+ {
+ init_gen_win_info (&TUI_CMD_WIN->generic,
+ TUI_CMD_WIN->generic.type,
+ TUI_CMD_WIN->generic.height,
+ TUI_CMD_WIN->generic.width,
+ 0,
+ TUI_CMD_WIN->generic.origin.y);
+ TUI_CMD_WIN->can_highlight = FALSE;
+ tui_make_visible (&TUI_CMD_WIN->generic);
}
+ tui_refresh_win (&TUI_CMD_WIN->generic);
tui_set_current_layout_to (SRC_DISASSEM_COMMAND);
}
}
@@ -964,7 +956,7 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)

if (TUI_CMD_WIN == NULL)
{
- make_command_window (&TUI_CMD_WIN, cmd_height, src_height);
+ TUI_CMD_WIN = make_command_window (cmd_height, src_height);
tui_refresh_win (&TUI_CMD_WIN->generic);
}
else
--
2.17.2