Simplify command window creation
authorTom Tromey <tom@tromey.com>
Sun, 16 Jun 2019 16:32:35 +0000 (10:32 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 25 Jun 2019 13:48:25 +0000 (07:48 -0600)
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-25  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
gdb/tui/tui-layout.c

index 45415df087cd3db2fc07496951beae6c9cbc0387..1df099ef51611c6ab8a623daa01b5a4b409a0f10 100644 (file)
@@ -1,3 +1,10 @@
+2019-06-25  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.
+
 2019-06-25  Tom Tromey  <tom@tromey.com>
 
        * tui/tui-layout.c (init_and_make_win): Remove NULL check.
index 695c56012c1c8aed61ab805f79c4d097f90ed306..3eddc56578b345c03b49737d83ea2ff61ecf366a 100644 (file)
@@ -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