This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 42/61] Simplify show_source_disasm_command


This is the first of a few patches to further simplify window
(re-)initialization in tui-layout.c.  When changing the layout, a
window may be created or, if it already exists, simply resized.  These
two cases normally are identical, but this was obscured by the way the
code was written.  This patch changes show_source_disasm_command to
unify the creation and re-initialization cases.

2019-07-04  Tom Tromey  <tom@tromey.com>

	* tui/tui-layout.c (show_source_disasm_command): Simplify window
	resetting.
---
 gdb/ChangeLog        |  5 +++++
 gdb/tui/tui-layout.c | 48 ++++++++++++++++----------------------------
 2 files changed, 22 insertions(+), 31 deletions(-)

diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 0ed7b29ce4b..4e914b79ea0 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -559,43 +559,29 @@ show_source_disasm_command (void)
       asm_height = tui_term_height () - (src_height + cmd_height);
 
       if (TUI_SRC_WIN == NULL)
-	tui_win_list[SRC_WIN] = make_source_window (src_height, 0);
-      else
-	{
-	  TUI_SRC_WIN->reset (src_height,
-			      tui_term_width (),
-			      0,
-			      0);
-	  tui_make_visible (TUI_SRC_WIN);
-	  TUI_SRC_WIN->m_has_locator = false;
-	}
+	tui_win_list[SRC_WIN] = new tui_source_window ();
+      TUI_SRC_WIN->reset (src_height,
+			  tui_term_width (),
+			  0,
+			  0);
+      tui_make_visible (TUI_SRC_WIN);
+      TUI_SRC_WIN->m_has_locator = false;
 
       struct tui_locator_window *locator = tui_locator_win_info_ptr ();
       gdb_assert (locator != nullptr);
 
       tui_show_source_content (TUI_SRC_WIN);
       if (TUI_DISASM_WIN == NULL)
-	{
-	  tui_win_list[DISASSEM_WIN]
-	    = make_disasm_window (asm_height, src_height - 1);
-	  locator->reset (2 /* 1 */ ,
-			  tui_term_width (),
-			  0,
-			  (src_height + asm_height) - 1);
-	}
-      else
-	{
-	  locator->reset (2 /* 1 */ ,
-			  tui_term_width (),
-			  0,
-			  (src_height + asm_height) - 1);
-	  TUI_DISASM_WIN->m_has_locator = true;
-	  TUI_DISASM_WIN->reset (asm_height,
-				 tui_term_width (),
-				 0,
-				 src_height - 1);
-	  tui_make_visible (TUI_DISASM_WIN);
-	}
+	tui_win_list[DISASSEM_WIN] = new tui_disasm_window ();
+      TUI_DISASM_WIN->reset (asm_height,
+			     tui_term_width (),
+			     0,
+			     src_height - 1);
+      tui_make_visible (TUI_DISASM_WIN);
+      locator->reset (2 /* 1 */ ,
+		      tui_term_width (),
+		      0,
+		      (src_height + asm_height) - 1);
       TUI_SRC_WIN->m_has_locator = false;
       TUI_DISASM_WIN->m_has_locator = true;
       tui_make_visible (locator);
-- 
2.17.2


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]