Patchwork [pushed] gdb: remove gen_ret_current_ui_field_ptr

login
register
mail settings
Submitter Simon Marchi (Code Review)
Date Nov. 21, 2019, 2:34 p.m.
Message ID <20191121143406.831732816F@gnutoolchain-gerrit.osci.io>
Download mbox | patch
Permalink /patch/36093/
State New
Headers show

Comments

Simon Marchi (Code Review) - Nov. 21, 2019, 2:34 p.m.
The original change was created by Simon Marchi.

Change URL: https://gnutoolchain-gerrit.osci.io/r/c/binutils-gdb/+/696
......................................................................

gdb: remove gen_ret_current_ui_field_ptr

I think it would be clearer to not use gen_ret_current_ui_field_ptr to
generate the implementation of current_ui_gdb_stdout_ptr et al.  It
doesn't save much code, but adds a layer of complexity for the reader.
Plus, it doesn't work well with IDEs, for example if you ask to find all
usages the m_gdb_stdout field.

gdb/ChangeLog:

	* top.c (current_ui_gdb_stdout_ptr): Spell out by hand.
	(current_ui_gdb_stdin_ptr): Likewise.
	(current_ui_gdb_stderr_ptr): Likewise.
	(current_ui_gdb_stdlog_ptr): Likewise.
	(current_ui_current_uiout_ptr): Likewise.
	(gen_ret_current_ui_field_ptr): Remove.

Change-Id: I86f821c9d119453701caedf0e47124ccddfbab2d
---
M gdb/ChangeLog
M gdb/top.c
2 files changed, 36 insertions(+), 13 deletions(-)

Patch

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3652685..57e8f6b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,12 @@ 
+2019-11-21  Simon Marchi  <simon.marchi@polymtl.ca>
+
+	* top.c (current_ui_gdb_stdout_ptr): Spell out by hand.
+	(current_ui_gdb_stdin_ptr): Likewise.
+	(current_ui_gdb_stderr_ptr): Likewise.
+	(current_ui_gdb_stdlog_ptr): Likewise.
+	(current_ui_current_uiout_ptr): Likewise.
+	(gen_ret_current_ui_field_ptr): Remove.
+
 2019-11-21  Tom de Vries  <tdevries@suse.de>
 
 	PR gdb/24956
diff --git a/gdb/top.c b/gdb/top.c
index 08c7425..2953eac 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -92,21 +92,35 @@ 
 #define DEFAULT_PROMPT	"(gdb) "
 #endif
 
-/* Generate a function that exports a pointer to a field of the
-   current UI.  */
-
-#define gen_ret_current_ui_field_ptr(type, name)	\
-type *							\
-current_ui_## name ## _ptr (void)			\
-{							\
-  return &current_ui->m_ ## name;		\
+struct ui_file **
+current_ui_gdb_stdout_ptr ()
+{
+  return &current_ui->m_gdb_stdout;
 }
 
-gen_ret_current_ui_field_ptr (struct ui_file *, gdb_stdout)
-gen_ret_current_ui_field_ptr (struct ui_file *, gdb_stdin)
-gen_ret_current_ui_field_ptr (struct ui_file *, gdb_stderr)
-gen_ret_current_ui_field_ptr (struct ui_file *, gdb_stdlog)
-gen_ret_current_ui_field_ptr (struct ui_out *, current_uiout)
+struct ui_file **
+current_ui_gdb_stdin_ptr ()
+{
+  return &current_ui->m_gdb_stdin;
+}
+
+struct ui_file **
+current_ui_gdb_stderr_ptr ()
+{
+  return &current_ui->m_gdb_stderr;
+}
+
+struct ui_file **
+current_ui_gdb_stdlog_ptr ()
+{
+  return &current_ui->m_gdb_stdlog;
+}
+
+struct ui_out **
+current_ui_current_uiout_ptr ()
+{
+  return &current_ui->m_current_uiout;
+}
 
 int inhibit_gdbinit = 0;