Use htab_up in auto-load.c
authorTom Tromey <tom@tromey.com>
Thu, 17 Sep 2020 17:47:50 +0000 (11:47 -0600)
committerTom Tromey <tom@tromey.com>
Thu, 17 Sep 2020 17:58:56 +0000 (11:58 -0600)
This changes auto-load.c to use htab_up, rather than manually calling
htab_delete.

gdb/ChangeLog
2020-09-17  Tom Tromey  <tom@tromey.com>

* auto-load.c (struct auto_load_pspace_info)
<~auto_load_pspace_info, auto_load_pspace_info>: Remove.
<loaded_script_files, loaded_script_texts>: Change type to
htab_up.
(~auto_load_pspace_info) Remove.
(init_loaded_scripts_info, maybe_add_script_file)
(maybe_add_script_text, auto_load_info_scripts): Update.

gdb/ChangeLog
gdb/auto-load.c

index f367709de06e996cc6c3d25e265adce06c29fe0b..e9b7b7d596087b2406152fc4f2dabb2083d8da97 100644 (file)
@@ -1,3 +1,13 @@
+2020-09-17  Tom Tromey  <tom@tromey.com>
+
+       * auto-load.c (struct auto_load_pspace_info)
+       <~auto_load_pspace_info, auto_load_pspace_info>: Remove.
+       <loaded_script_files, loaded_script_texts>: Change type to
+       htab_up.
+       (~auto_load_pspace_info) Remove.
+       (init_loaded_scripts_info, maybe_add_script_file)
+       (maybe_add_script_text, auto_load_info_scripts): Update.
+
 2020-09-17  Tom Tromey  <tromey@adacore.com>
 
        * c-exp.y (name_obstack): Now static.
index c967261925a30dfd87664705e9f0a73650ef0fa8..9a51d2f3dc6c5f9024a26c5c1dbe64f66ff9cfe4 100644 (file)
@@ -529,13 +529,10 @@ For more information about this security protection see the\n\
 
 struct auto_load_pspace_info
 {
-  auto_load_pspace_info () = default;
-  ~auto_load_pspace_info ();
-
   /* For each program space we keep track of loaded scripts, both when
      specified as file names and as scripts to be executed directly.  */
-  struct htab *loaded_script_files = nullptr;
-  struct htab *loaded_script_texts = nullptr;
+  htab_up loaded_script_files;
+  htab_up loaded_script_texts;
 
   /* Non-zero if we've issued the warning about an auto-load script not being
      supported.  We only want to issue this warning once.  */
@@ -567,14 +564,6 @@ struct loaded_script
 static const struct program_space_key<struct auto_load_pspace_info>
   auto_load_pspace_data;
 
-auto_load_pspace_info::~auto_load_pspace_info ()
-{
-  if (loaded_script_files)
-    htab_delete (loaded_script_files);
-  if (loaded_script_texts)
-    htab_delete (loaded_script_texts);
-}
-
 /* Get the current autoload data.  If none is found yet, add it now.  This
    function always returns a valid object.  */
 
@@ -621,14 +610,16 @@ init_loaded_scripts_info (struct auto_load_pspace_info *pspace_info)
      Space for each entry is obtained with one malloc so we can free them
      easily.  */
 
-  pspace_info->loaded_script_files = htab_create (31,
-                                                 hash_loaded_script_entry,
-                                                 eq_loaded_script_entry,
-                                                 xfree);
-  pspace_info->loaded_script_texts = htab_create (31,
-                                                 hash_loaded_script_entry,
-                                                 eq_loaded_script_entry,
-                                                 xfree);
+  pspace_info->loaded_script_files.reset
+    (htab_create (31,
+                 hash_loaded_script_entry,
+                 eq_loaded_script_entry,
+                 xfree));
+  pspace_info->loaded_script_texts.reset
+    (htab_create (31,
+                 hash_loaded_script_entry,
+                 eq_loaded_script_entry,
+                 xfree));
 
   pspace_info->unsupported_script_warning_printed = false;
   pspace_info->script_not_found_warning_printed = false;
@@ -660,7 +651,7 @@ maybe_add_script_file (struct auto_load_pspace_info *pspace_info, int loaded,
                       const char *name, const char *full_path,
                       const struct extension_language_defn *language)
 {
-  struct htab *htab = pspace_info->loaded_script_files;
+  struct htab *htab = pspace_info->loaded_script_files.get ();
   struct loaded_script **slot, entry;
   int in_hash_table;
 
@@ -708,7 +699,7 @@ maybe_add_script_text (struct auto_load_pspace_info *pspace_info,
                       int loaded, const char *name,
                       const struct extension_language_defn *language)
 {
-  struct htab *htab = pspace_info->loaded_script_texts;
+  struct htab *htab = pspace_info->loaded_script_texts.get ();
   struct loaded_script **slot, entry;
   int in_hash_table;
 
@@ -1299,7 +1290,7 @@ auto_load_info_scripts (const char *pattern, int from_tty,
       collect_matching_scripts_data data (&script_files, language);
 
       /* Pass a pointer to scripts as VEC_safe_push can realloc space.  */
-      htab_traverse_noresize (pspace_info->loaded_script_files,
+      htab_traverse_noresize (pspace_info->loaded_script_files.get (),
                              collect_matching_scripts, &data);
 
       std::sort (script_files.begin (), script_files.end (),
@@ -1311,7 +1302,7 @@ auto_load_info_scripts (const char *pattern, int from_tty,
       collect_matching_scripts_data data (&script_texts, language);
 
       /* Pass a pointer to scripts as VEC_safe_push can realloc space.  */
-      htab_traverse_noresize (pspace_info->loaded_script_texts,
+      htab_traverse_noresize (pspace_info->loaded_script_texts.get (),
                              collect_matching_scripts, &data);
 
       std::sort (script_texts.begin (), script_texts.end (),