From: Tom Tromey Date: Fri, 24 Apr 2020 21:35:01 +0000 (-0600) Subject: Introduce new add_psymbol_to_list overload X-Git-Tag: binutils-2_35~979 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2467f4f6a533a28047e0b45ce716b9b1f9f72a09;p=thirdparty%2Fbinutils-gdb.git Introduce new add_psymbol_to_list overload This adds a new overload of add_psymbol_to_list. This one takes an already constructed psymbol and adds it to the bcache and the appropriate list. This seemed cleaner than continuing to add parameters to the existing add_psymbol_to_list, and is more in line with how full symbols are constructed. gdb/ChangeLog 2020-04-24 Tom Tromey * psymtab.c (add_psymbol_to_bcache): Simplify calling convention. (add_psymbol_to_list): New overload. Make old overload call new one. * psympriv.h (add_psymbol_to_list): New overload. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index df43ffd296e..083d4d29eca 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2020-04-24 Tom Tromey + + * psymtab.c (add_psymbol_to_bcache): Simplify calling convention. + (add_psymbol_to_list): New overload. Make old overload call new + one. + * psympriv.h (add_psymbol_to_list): New overload. + 2020-04-24 Tom Tromey * dwarf2/read.c (partial_die_info::read) partial_symtabs->obstack ()); - psymbol.ginfo.compute_and_set_names (name, copy_name, objfile->per_bfd); - /* Stash the partial symbol away in the cache. */ return ((struct partial_symbol *) objfile->partial_symtabs->psymbol_cache.insert @@ -1628,21 +1614,16 @@ append_psymbol_to_list (std::vector *list, /* See psympriv.h. */ void -add_psymbol_to_list (gdb::string_view name, bool copy_name, - domain_enum domain, - enum address_class theclass, - short section, +add_psymbol_to_list (const partial_symbol &psymbol, psymbol_placement where, - CORE_ADDR coreaddr, - enum language language, struct objfile *objfile) + struct objfile *objfile) { struct partial_symbol *psym; int added; /* Stash the partial symbol away in the cache. */ - psym = add_psymbol_to_bcache (name, copy_name, domain, theclass, - section, coreaddr, language, objfile, &added); + psym = add_psymbol_to_bcache (psymbol, objfile, &added); /* Do not duplicate global partial symbols. */ if (where == psymbol_placement::GLOBAL && !added) @@ -1658,6 +1639,30 @@ add_psymbol_to_list (gdb::string_view name, bool copy_name, /* See psympriv.h. */ +void +add_psymbol_to_list (gdb::string_view name, bool copy_name, + domain_enum domain, + enum address_class theclass, + short section, + psymbol_placement where, + CORE_ADDR coreaddr, + enum language language, struct objfile *objfile) +{ + struct partial_symbol psymbol; + memset (&psymbol, 0, sizeof (psymbol)); + + psymbol.set_unrelocated_address (coreaddr); + psymbol.ginfo.section = section; + psymbol.domain = domain; + psymbol.aclass = theclass; + psymbol.ginfo.set_language (language, objfile->partial_symtabs->obstack ()); + psymbol.ginfo.compute_and_set_names (name, copy_name, objfile->per_bfd); + + add_psymbol_to_list (psymbol, where, objfile); +} + +/* See psympriv.h. */ + void init_psymbol_list (struct objfile *objfile, int total_symbols) {