]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Clean up demangle_parse_info
authorTom Tromey <tom@tromey.com>
Wed, 10 Apr 2024 23:01:13 +0000 (17:01 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 14 May 2024 19:28:39 +0000 (13:28 -0600)
This changes demangle_parse_info to use inline initializers and to
remove some manual memory management.

Approved-By: John Baldwin <jhb@FreeBSD.org>
gdb/cp-name-parser.y
gdb/cp-support.h

index 782005387d6fbe85a29b40c9ea81dfa2eeeafb0a..e4534cea20802609c72edd5fdd9052ec57775db7 100644 (file)
@@ -1955,15 +1955,6 @@ cp_comp_to_string (struct demangle_component *result, int estimated_len)
   return gdb::unique_xmalloc_ptr<char> (res);
 }
 
-/* Constructor for demangle_parse_info.  */
-
-demangle_parse_info::demangle_parse_info ()
-: info (NULL),
-  tree (NULL)
-{
-  obstack_init (&obstack);
-}
-
 /* Destructor for demangle_parse_info.  */
 
 demangle_parse_info::~demangle_parse_info ()
@@ -1976,9 +1967,6 @@ demangle_parse_info::~demangle_parse_info ()
       free (info);
       info = next;
     }
-
-  /* Free any memory allocated during typedef replacement.  */
-  obstack_free (&obstack, NULL);
 }
 
 /* Merge the two parse trees given by DEST and SRC.  The parse tree
index 4015126154b45c9714a27a680e02b675367bfc4b..d0bedcd7b8011417407acdd3b839dc9307e82649 100644 (file)
@@ -58,18 +58,18 @@ struct using_direct;
 
 struct demangle_parse_info
 {
-  demangle_parse_info ();
+  demangle_parse_info () = default;
 
   ~demangle_parse_info ();
 
   /* The memory used during the parse.  */
-  struct demangle_info *info;
+  struct demangle_info *info = nullptr;
 
   /* The result of the parse.  */
-  struct demangle_component *tree;
+  struct demangle_component *tree = nullptr;
 
   /* Any temporary memory used during typedef replacement.  */
-  struct obstack obstack;
+  auto_obstack obstack;
 };