[v4,01/10] Move tdesc header funcs to c file

Message ID 20180322084429.26250-2-alan.hayward@arm.com
State New, archived
Headers

Commit Message

Alan Hayward March 22, 2018, 8:44 a.m. UTC
  From: Alan Hayward <alan.hayward@arm.com>

Move the destructor and equals operator for gdbserver tdesc from the .h
to the .c file. Both functions are too long to be inlined and make the
header look messy. Patch does not change any functionality.
Patch identical to V3 version.

2018-03-21  Alan Hayward  <alan.hayward@arm.com>

gdbserver/
	* tdesc.c (target_desc::~target_desc): Move to here.
	(target_desc::operator==): Likewise.
	* tdesc.h (target_desc::~target_desc): Move from here.
	(target_desc::operator==): Likewise.
---
 gdb/gdbserver/tdesc.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 gdb/gdbserver/tdesc.h | 44 ++------------------------------------------
 2 files changed, 50 insertions(+), 42 deletions(-)
  

Comments

Simon Marchi March 22, 2018, 8:43 p.m. UTC | #1
On 2018-03-22 04:44 AM, alan.hayward@arm.com wrote:
> From: Alan Hayward <alan.hayward@arm.com>
> 
> Move the destructor and equals operator for gdbserver tdesc from the .h
> to the .c file. Both functions are too long to be inlined and make the
> header look messy. Patch does not change any functionality.
> Patch identical to V3 version.
> 
> 2018-03-21  Alan Hayward  <alan.hayward@arm.com>
> 
> gdbserver/
> 	* tdesc.c (target_desc::~target_desc): Move to here.
> 	(target_desc::operator==): Likewise.
> 	* tdesc.h (target_desc::~target_desc): Move from here.
> 	(target_desc::operator==): Likewise.

This patch LGTM, feel free to push it by itself, it will be one
less patch to worry about.

Simon
  

Patch

diff --git a/gdb/gdbserver/tdesc.c b/gdb/gdbserver/tdesc.c
index 00a5e8dc4d..e50a848e2f 100644
--- a/gdb/gdbserver/tdesc.c
+++ b/gdb/gdbserver/tdesc.c
@@ -19,6 +19,54 @@ 
 #include "tdesc.h"
 #include "regdef.h"
 
+#ifndef IN_PROCESS_AGENT
+
+target_desc::~target_desc ()
+{
+  int i;
+
+  for (reg *reg : reg_defs)
+    xfree (reg);
+
+  xfree ((char *) arch);
+  xfree ((char *) osabi);
+
+  char *f;
+
+  for (i = 0; VEC_iterate (char_ptr, features, i, f); i++)
+    xfree (f);
+  VEC_free (char_ptr, features);
+}
+
+bool target_desc::operator== (const target_desc &other) const
+{
+  if (reg_defs.size () != other.reg_defs.size ())
+    return false;
+
+  for (int i = 0; i < reg_defs.size (); ++i)
+    {
+      struct reg *reg = reg_defs[i];
+      struct reg *reg2 = other.reg_defs[i];
+
+      if (reg != reg2 && *reg != *reg2)
+	return false;
+    }
+
+  /* Compare expedite_regs.  */
+  int i = 0;
+  for (; expedite_regs[i] != NULL; i++)
+    {
+      if (strcmp (expedite_regs[i], other.expedite_regs[i]) != 0)
+	return false;
+    }
+  if (other.expedite_regs[i] != NULL)
+    return false;
+
+  return true;
+}
+
+#endif
+
 void
 init_target_desc (struct target_desc *tdesc)
 {
diff --git a/gdb/gdbserver/tdesc.h b/gdb/gdbserver/tdesc.h
index d21574ca73..4513ea7423 100644
--- a/gdb/gdbserver/tdesc.h
+++ b/gdb/gdbserver/tdesc.h
@@ -67,49 +67,9 @@  public:
     : registers_size (0)
   {}
 
-  ~target_desc ()
-  {
-    int i;
-
-    for (reg *reg : reg_defs)
-      xfree (reg);
-
-    xfree ((char *) arch);
-    xfree ((char *) osabi);
-
-    char *f;
+  ~target_desc ();
 
-    for (i = 0; VEC_iterate (char_ptr, features, i, f); i++)
-      xfree (f);
-    VEC_free (char_ptr, features);
-  }
-
-  bool operator== (const target_desc &other) const
-  {
-    if (reg_defs.size () != other.reg_defs.size ())
-      return false;
-
-    for (int i = 0; i < reg_defs.size (); ++i)
-      {
-	struct reg *reg = reg_defs[i];
-	struct reg *reg2 = other.reg_defs[i];
-
-	if (reg != reg2 && *reg != *reg2)
-	  return false;
-      }
-
-    /* Compare expedite_regs.  */
-    int i = 0;
-    for (; expedite_regs[i] != NULL; i++)
-      {
-	if (strcmp (expedite_regs[i], other.expedite_regs[i]) != 0)
-	  return false;
-      }
-    if (other.expedite_regs[i] != NULL)
-      return false;
-
-    return true;
-  }
+  bool operator== (const target_desc &other) const;
 
   bool operator!= (const target_desc &other) const
   {