gdb: add constructor to internalvar
authorSimon Marchi <simon.marchi@efficios.com>
Tue, 14 Feb 2023 19:23:26 +0000 (14:23 -0500)
committerSimon Marchi <simon.marchi@efficios.com>
Wed, 15 Feb 2023 16:58:19 +0000 (11:58 -0500)
Add a constructor that takes the name as a parameter.  Initialize the
next and kind fields inline.

Change-Id: Ic4db0aba85f1da9f12f3eee0ac62c0e5ef0cfe88
Approved-By: Tom Tromey <tom@tromey.com>
gdb/value.c

index 4b3ec771266c224fa4bb7a297f7ac24ab7e99be3..1b74a6ecc4ff688046ed9713a3c47c3f10b62fea 100644 (file)
@@ -1829,14 +1829,18 @@ union internalvar_data
 
 struct internalvar
 {
-  struct internalvar *next;
+  internalvar (std::string name)
+    : name (std::move (name))
+  {}
+
+  struct internalvar *next = nullptr;
   std::string name;
 
   /* We support various different kinds of content of an internal variable.
      enum internalvar_kind specifies the kind, and union internalvar_data
      provides the data associated with this particular kind.  */
 
-  enum internalvar_kind kind;
+  enum internalvar_kind kind = INTERNALVAR_VOID;
 
   union internalvar_data u;
 };
@@ -1922,10 +1926,8 @@ complete_internalvar (completion_tracker &tracker, const char *name)
 struct internalvar *
 create_internalvar (const char *name)
 {
-  internalvar *var = new internalvar;
+  internalvar *var = new internalvar (name);
 
-  var->name = name;
-  var->kind = INTERNALVAR_VOID;
   var->next = internalvars;
   internalvars = var;
   return var;