diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2024-11-04 13:27:45 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2024-11-25 22:07:04 -0500 |
commit | 112f6d85fb6e18c8eb0384527cdff52ade1e7e24 (patch) | |
tree | 6dc43b7e9014b86a3529715eef8fca9731e4f245 /gdb/value.c | |
parent | c4b94535295625fe259868899b7cae54c40e60c3 (diff) | |
download | binutils-112f6d85fb6e18c8eb0384527cdff52ade1e7e24.zip binutils-112f6d85fb6e18c8eb0384527cdff52ade1e7e24.tar.gz binutils-112f6d85fb6e18c8eb0384527cdff52ade1e7e24.tar.bz2 |
Convert type copying to new hash table
This converts the type copying code to use the new hash map.
Change-Id: I35f0a4946dcc5c5eb84820126cf716b600f3302f
Co-Authored-By: Tom Tromey <tom@tromey.com>
Approved-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdb/value.c')
-rw-r--r-- | gdb/value.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/gdb/value.c b/gdb/value.c index d9b3c6e..a184916 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -2468,7 +2468,7 @@ add_internal_function (gdb::unique_xmalloc_ptr<char> &&name, } void -value::preserve (struct objfile *objfile, htab_t copied_types) +value::preserve (struct objfile *objfile, copied_types_hash_t &copied_types) { if (m_type->objfile_owner () == objfile) m_type = copy_type_recursive (m_type, copied_types); @@ -2481,7 +2481,7 @@ value::preserve (struct objfile *objfile, htab_t copied_types) static void preserve_one_internalvar (struct internalvar *var, struct objfile *objfile, - htab_t copied_types) + copied_types_hash_t &copied_types) { switch (var->kind) { @@ -2504,7 +2504,7 @@ preserve_one_internalvar (struct internalvar *var, struct objfile *objfile, static void preserve_one_varobj (struct varobj *varobj, struct objfile *objfile, - htab_t copied_types) + copied_types_hash_t &copied_types) { if (varobj->type->is_objfile_owned () && varobj->type->objfile_owner () == objfile) @@ -2528,22 +2528,21 @@ preserve_values (struct objfile *objfile) { /* Create the hash table. We allocate on the objfile's obstack, since it is soon to be deleted. */ - htab_up copied_types = create_copied_types_hash (); + copied_types_hash_t copied_types; for (const value_ref_ptr &item : value_history) - item->preserve (objfile, copied_types.get ()); + item->preserve (objfile, copied_types); for (auto &pair : internalvars) - preserve_one_internalvar (&pair.second, objfile, copied_types.get ()); + preserve_one_internalvar (&pair.second, objfile, copied_types); /* For the remaining varobj, check that none has type owned by OBJFILE. */ all_root_varobjs ([&copied_types, objfile] (struct varobj *varobj) { - preserve_one_varobj (varobj, objfile, - copied_types.get ()); + preserve_one_varobj (varobj, objfile, copied_types); }); - preserve_ext_lang_values (objfile, copied_types.get ()); + preserve_ext_lang_values (objfile, copied_types); } static void |