Use unique_xmalloc_ptr in interp
authorTom Tromey <tromey@adacore.com>
Fri, 17 Jun 2022 15:31:44 +0000 (09:31 -0600)
committerTom Tromey <tromey@adacore.com>
Wed, 22 Jun 2022 19:28:55 +0000 (13:28 -0600)
This changes interp::m_name to be a unique_xmalloc_ptr, removing some
manual memory management.  It also cleans up the initialization of the
'inited' member, and moves the 'private:' and 'public:' keywords to
their proper spots.

gdb/interps.c
gdb/interps.h

index 44002ff2cb59e93ee7d385b4fa8d81a7bc7a896e..0c440e786857a5d1c44489ddae12f31189df8707 100644 (file)
@@ -79,14 +79,12 @@ static struct interp *interp_lookup_existing (struct ui *ui,
                                              const char *name);
 
 interp::interp (const char *name)
-  : m_name (xstrdup (name))
+  : m_name (make_unique_xstrdup (name))
 {
-  this->inited = false;
 }
 
 interp::~interp ()
 {
-  xfree (m_name);
 }
 
 /* An interpreter factory.  Maps an interpreter name to the factory
index 330c1ba661533d961992f0e18d2f1956a24078a4..e393b08c962eb384c15a187fbaa2b3d6681582d5 100644 (file)
@@ -78,20 +78,20 @@ public:
 
   const char *name () const
   {
-    return m_name;
+    return m_name.get ();
   }
 
-  /* This is the name in "-i=" and "set interpreter".  */
 private:
-  char *m_name;
+  /* This is the name in "-i=" and "set interpreter".  */
+  gdb::unique_xmalloc_ptr<char> m_name;
 
+public:
   /* Interpreters are stored in a linked list, this is the next
      one...  */
-public:
   struct interp *next;
 
   /* Has the init method been run?  */
-  bool inited;
+  bool inited = false;
 };
 
 /* Look up the interpreter for NAME, creating one if none exists yet.