[40/61] Change tui_set_layout to return void

Message ID 20190704170311.15982-41-tom@tromey.com
State New
Headers show
Series
  • More TUI refactorings
Related show

Commit Message

Tom Tromey July 4, 2019, 5:02 p.m.
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.

2019-07-04  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.
---
 gdb/ChangeLog        |   5 ++
 gdb/tui/tui-layout.c | 167 +++++++++++++++++++++----------------------
 gdb/tui/tui-layout.h |   2 +-
 3 files changed, 86 insertions(+), 88 deletions(-)

-- 
2.17.2

Patch

diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index d15df2a37c8..7feadd71ece 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -113,104 +113,97 @@  show_layout (enum tui_layout_type layout)
 
 /* Function to set the layout to SRC_COMMAND, DISASSEM_COMMAND,
    SRC_DISASSEM_COMMAND, SRC_DATA_COMMAND, or DISASSEM_DATA_COMMAND.  */
-enum tui_status
+void
 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 ();
+  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);
+  extract_display_start_addr (&gdbarch, &addr);
 
-      enum tui_layout_type new_layout = layout_type;
+  enum tui_layout_type new_layout = layout_type;
 
-      if (new_layout != cur_layout)
-	{
-	  show_layout (new_layout);
+  if (new_layout != cur_layout)
+    {
+      show_layout (new_layout);
 
-	  /* Now determine where focus should be.  */
-	  if (win_with_focus != TUI_CMD_WIN)
+      /* Now determine where focus should be.  */
+      if (win_with_focus != TUI_CMD_WIN)
+	{
+	  switch (new_layout)
 	    {
-	      switch (new_layout)
-		{
-		case SRC_COMMAND:
-		  tui_set_win_focus_to (TUI_SRC_WIN);
-		  layout_def->display_mode = SRC_WIN;
-		  break;
-		case DISASSEM_COMMAND:
-		  /* The previous layout was not showing code.
-		     This can happen if there is no source
-		     available:
-
-		     1. if the source file is in another dir OR
-		     2. if target was compiled without -g
-		     We still want to show the assembly though!  */
-
-		  tui_get_begin_asm_address (&gdbarch, &addr);
-		  tui_set_win_focus_to (TUI_DISASM_WIN);
-		  layout_def->display_mode = DISASSEM_WIN;
-		  break;
-		case SRC_DISASSEM_COMMAND:
-		  /* The previous layout was not showing code.
-		     This can happen if there is no source
-		     available:
-
-		     1. if the source file is in another dir OR
-		     2. if target was compiled without -g
-		     We still want to show the assembly though!  */
-
-		  tui_get_begin_asm_address (&gdbarch, &addr);
-		  if (win_with_focus == TUI_SRC_WIN)
-		    tui_set_win_focus_to (TUI_SRC_WIN);
-		  else
-		    tui_set_win_focus_to (TUI_DISASM_WIN);
-		  break;
-		case SRC_DATA_COMMAND:
-		  if (win_with_focus != TUI_DATA_WIN)
-		    tui_set_win_focus_to (TUI_SRC_WIN);
-		  else
-		    tui_set_win_focus_to (TUI_DATA_WIN);
-		  layout_def->display_mode = SRC_WIN;
-		  break;
-		case DISASSEM_DATA_COMMAND:
-		  /* The previous layout was not showing code.
-		     This can happen if there is no source
-		     available:
-
-		     1. if the source file is in another dir OR
-		     2. if target was compiled without -g
-		     We still want to show the assembly though!  */
-
-		  tui_get_begin_asm_address (&gdbarch, &addr);
-		  if (win_with_focus != TUI_DATA_WIN)
-		    tui_set_win_focus_to (TUI_DISASM_WIN);
-		  else
-		    tui_set_win_focus_to (TUI_DATA_WIN);
-		  layout_def->display_mode = DISASSEM_WIN;
-		  break;
-		default:
-		  break;
-		}
+	    case SRC_COMMAND:
+	      tui_set_win_focus_to (TUI_SRC_WIN);
+	      layout_def->display_mode = SRC_WIN;
+	      break;
+	    case DISASSEM_COMMAND:
+	      /* The previous layout was not showing code.
+		 This can happen if there is no source
+		 available:
+
+		 1. if the source file is in another dir OR
+		 2. if target was compiled without -g
+		 We still want to show the assembly though!  */
+
+	      tui_get_begin_asm_address (&gdbarch, &addr);
+	      tui_set_win_focus_to (TUI_DISASM_WIN);
+	      layout_def->display_mode = DISASSEM_WIN;
+	      break;
+	    case SRC_DISASSEM_COMMAND:
+	      /* The previous layout was not showing code.
+		 This can happen if there is no source
+		 available:
+
+		 1. if the source file is in another dir OR
+		 2. if target was compiled without -g
+		 We still want to show the assembly though!  */
+
+	      tui_get_begin_asm_address (&gdbarch, &addr);
+	      if (win_with_focus == TUI_SRC_WIN)
+		tui_set_win_focus_to (TUI_SRC_WIN);
+	      else
+		tui_set_win_focus_to (TUI_DISASM_WIN);
+	      break;
+	    case SRC_DATA_COMMAND:
+	      if (win_with_focus != TUI_DATA_WIN)
+		tui_set_win_focus_to (TUI_SRC_WIN);
+	      else
+		tui_set_win_focus_to (TUI_DATA_WIN);
+	      layout_def->display_mode = SRC_WIN;
+	      break;
+	    case DISASSEM_DATA_COMMAND:
+	      /* The previous layout was not showing code.
+		 This can happen if there is no source
+		 available:
+
+		 1. if the source file is in another dir OR
+		 2. if target was compiled without -g
+		 We still want to show the assembly though!  */
+
+	      tui_get_begin_asm_address (&gdbarch, &addr);
+	      if (win_with_focus != TUI_DATA_WIN)
+		tui_set_win_focus_to (TUI_DISASM_WIN);
+	      else
+		tui_set_win_focus_to (TUI_DATA_WIN);
+	      layout_def->display_mode = DISASSEM_WIN;
+	      break;
+	    default:
+	      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
diff --git a/gdb/tui/tui-layout.h b/gdb/tui/tui-layout.h
index bc21d2999e4..5f1993387be 100644
--- a/gdb/tui/tui-layout.h
+++ b/gdb/tui/tui-layout.h
@@ -30,6 +30,6 @@  extern int tui_default_win_height (enum tui_win_type,
 				   enum tui_layout_type);
 extern int tui_default_win_viewport_height (enum tui_win_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 */