From d9f95811860d9b99d539deb80bc6f48f0cee10e8 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 11 Aug 2022 11:13:00 -0600 Subject: [PATCH] Use member initialization in 'struct ui' This changes 'struct ui' to use member initialization. This is simpler to understand. --- gdb/top.c | 13 ++----------- gdb/top.h | 18 +++++++++--------- 2 files changed, 11 insertions(+), 20 deletions(-) diff --git a/gdb/top.c b/gdb/top.c index d8e0ee5495a..54c7c922142 100644 --- a/gdb/top.c +++ b/gdb/top.c @@ -295,26 +295,17 @@ unbuffer_stream (FILE *stream) /* See top.h. */ ui::ui (FILE *instream_, FILE *outstream_, FILE *errstream_) - : next (nullptr), - num (++highest_ui_num), - call_readline (nullptr), - input_handler (nullptr), - command_editing (0), - interp_info (nullptr), - async (0), - secondary_prompt_depth (0), + : num (++highest_ui_num), stdin_stream (instream_), instream (instream_), outstream (outstream_), errstream (errstream_), input_fd (fileno (instream)), m_input_interactive_p (ISATTY (instream)), - prompt_state (PROMPT_NEEDED), m_gdb_stdout (new pager_file (new stdio_file (outstream))), m_gdb_stdin (new stdio_file (instream)), m_gdb_stderr (new stderr_file (errstream)), - m_gdb_stdlog (m_gdb_stderr), - m_current_uiout (nullptr) + m_gdb_stdlog (m_gdb_stderr) { buffer_init (&line_buffer); diff --git a/gdb/top.h b/gdb/top.h index 3bd1108f06a..29778f69262 100644 --- a/gdb/top.h +++ b/gdb/top.h @@ -61,7 +61,7 @@ struct ui DISABLE_COPY_AND_ASSIGN (ui); /* Pointer to next in singly-linked list. */ - struct ui *next; + struct ui *next = nullptr; /* Convenient handle (UI number). Unique across all UIs. */ int num; @@ -76,19 +76,19 @@ struct ui point of invocation. In the special case in which the character read is newline, the function invokes the INPUT_HANDLER callback (see below). */ - void (*call_readline) (gdb_client_data); + void (*call_readline) (gdb_client_data) = nullptr; /* The function to invoke when a complete line of input is ready for processing. */ - void (*input_handler) (gdb::unique_xmalloc_ptr &&); + void (*input_handler) (gdb::unique_xmalloc_ptr &&) = nullptr; /* True if this UI is using the readline library for command editing; false if using GDB's own simple readline emulation, with no editing support. */ - int command_editing; + int command_editing = 0; /* Each UI has its own independent set of interpreters. */ - struct ui_interp_info *interp_info; + struct ui_interp_info *interp_info = nullptr; /* True if the UI is in async mode, false if in sync mode. If in sync mode, a synchronous execution command (e.g, "next") does not @@ -98,11 +98,11 @@ struct ui the top event loop. For the main UI, this starts out disabled, until all the explicit command line arguments (e.g., `gdb -ex "start" -ex "next"') are processed. */ - int async; + int async = 0; /* The number of nested readline secondary prompts that are currently active. */ - int secondary_prompt_depth; + int secondary_prompt_depth = 0; /* The UI's stdin. Set to stdin for the main UI. */ FILE *stdin_stream; @@ -128,7 +128,7 @@ struct ui bool m_input_interactive_p; /* See enum prompt_state's description. */ - enum prompt_state prompt_state; + enum prompt_state prompt_state = PROMPT_NEEDED; /* The fields below that start with "m_" are "private". They're meant to be accessed through wrapper macros that make them look @@ -146,7 +146,7 @@ struct ui struct ui_file *m_gdb_stdlog; /* The current ui_out. */ - struct ui_out *m_current_uiout; + struct ui_out *m_current_uiout = nullptr; /* Register the UI's input file descriptor in the event loop. */ void register_file_handler (); -- 2.30.2