aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2019-07-01 00:55:14 -0600
committerTom Tromey <tom@tromey.com>2019-07-17 12:19:17 -0600
commit890b8bde7a07a412bc1085bd4724bd03500b0dc0 (patch)
tree7b3feadb1139e89fcfcc4506437b597983f15fc2
parent2cdfa11333867dbfcb2a6b631cda989d64f68944 (diff)
Simplify show_source_or_disasm_and_command
This changes show_source_or_disasm_and_command to unify the creation and re-initialization cases. gdb/ChangeLog 2019-07-17 Tom Tromey <tom@tromey.com> * tui/tui-layout.c (show_source_or_disasm_and_command): Unify creation and re-initialization cases.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/tui/tui-layout.c49
2 files changed, 25 insertions, 29 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8de1558eea2..6d50df19d90 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2019-07-17 Tom Tromey <tom@tromey.com>
+ * tui/tui-layout.c (show_source_or_disasm_and_command): Unify
+ creation and re-initialization cases.
+
+2019-07-17 Tom Tromey <tom@tromey.com>
+
* tui/tui-regs.c (tui_get_register): Return void.
2019-07-17 Tom Tromey <tom@tromey.com>
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 4e914b79ea0..83eb0dfeb46 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -693,7 +693,7 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)
{
if (tui_current_layout () != layout_type)
{
- struct tui_win_info **win_info_ptr;
+ struct tui_source_window_base *win_info;
int src_height, cmd_height;
struct tui_locator_window *locator = tui_locator_win_info_ptr ();
gdb_assert (locator != nullptr);
@@ -705,42 +705,33 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)
src_height = tui_term_height () - cmd_height;
if (layout_type == SRC_COMMAND)
- win_info_ptr = &tui_win_list[SRC_WIN];
- else
- win_info_ptr = &tui_win_list[DISASSEM_WIN];
-
- tui_source_window_base *base;
- if ((*win_info_ptr) == NULL)
{
- if (layout_type == SRC_COMMAND)
- *win_info_ptr = make_source_window (src_height - 1, 0);
- else
- *win_info_ptr = make_disasm_window (src_height - 1, 0);
- locator->reset (2 /* 1 */ ,
- tui_term_width (),
- 0,
- src_height - 1);
- base = (tui_source_window_base *) *win_info_ptr;
+ if (tui_win_list[SRC_WIN] == nullptr)
+ tui_win_list[SRC_WIN] = new tui_source_window ();
+ win_info = TUI_SRC_WIN;
}
else
{
- base = (tui_source_window_base *) *win_info_ptr;
- locator->reset (2 /* 1 */ ,
- tui_term_width (),
- 0,
- src_height - 1);
- base->m_has_locator = true;
- (*win_info_ptr)->reset (src_height - 1,
- tui_term_width (),
- 0,
- 0);
- tui_make_visible (*win_info_ptr);
+ if (tui_win_list[DISASSEM_WIN] == nullptr)
+ tui_win_list[DISASSEM_WIN] = new tui_disasm_window ();
+ win_info = TUI_DISASM_WIN;
}
- base->m_has_locator = true;
+ locator->reset (2 /* 1 */ ,
+ tui_term_width (),
+ 0,
+ src_height - 1);
+ win_info->reset (src_height - 1,
+ tui_term_width (),
+ 0,
+ 0);
+ tui_make_visible (win_info);
+
+
+ win_info->m_has_locator = true;
tui_make_visible (locator);
tui_show_locator_content ();
- tui_show_source_content (base);
+ tui_show_source_content (win_info);
if (TUI_CMD_WIN == NULL)
{