From 112f6d85fb6e18c8eb0384527cdff52ade1e7e24 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Mon, 4 Nov 2024 13:27:45 -0500 Subject: 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 Approved-By: Tom Tromey --- gdb/value.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'gdb/value.c') 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 &&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 -- cgit v1.1