[PATCH 65/66] Make tui_gen_win_info constructor protected

Tom Tromey
2019-06-24T18:49:14Z

Now that all the window types have their own concrete classes, the
tui_gen_win_info constructor can be protected.

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

* tui/tui-layout.c (init_and_make_win): Assert on unrecognized
type.
* tui/tui-data.h (struct tui_gen_win_info): Make constructor
protected.
---
gdb/ChangeLog | 7 +++++++
gdb/tui/tui-data.h | 4 ++++
gdb/tui/tui-layout.c | 4 +---
3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index 147149389cf..3936aedec95 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -34,11 +34,15 @@ struct tui_point
/* Generic window information. */
struct tui_gen_win_info
{
+protected:
+
explicit tui_gen_win_info (enum tui_win_type t)
: type (t)
{
}

+public:
+
virtual ~tui_gen_win_info ();

/* Call to refresh this window. */
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 9dbb5995998..d9a1f08ac1f 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -815,9 +815,7 @@ init_and_make_win (tui_gen_win_info *win_info,
break;

default:
- gdb_assert (tui_win_is_auxiliary (win_type));
- win_info = new tui_gen_win_info (win_type);
- break;
+ gdb_assert_not_reached (_("unhandled window type"));
}
}

--
2.17.2