From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2126) id EA620386EC42; Fri, 24 Apr 2020 21:35:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EA620386EC42 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Tom Tromey To: gdb-cvs@sourceware.org Subject: [binutils-gdb] Introduce new add_psymbol_to_list overload X-Act-Checkin: binutils-gdb X-Git-Author: Tom Tromey X-Git-Refname: refs/heads/master X-Git-Oldrev: e61108c92d4bc4021ab89671612308c01b18e15d X-Git-Newrev: 2467f4f6a533a28047e0b45ce716b9b1f9f72a09 Message-Id: <20200424213545.EA620386EC42@sourceware.org> Date: Fri, 24 Apr 2020 21:35:45 +0000 (GMT) X-BeenThere: gdb-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 24 Apr 2020 21:35:46 -0000 https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2467f4f6a533a28047e0b45ce716b9b1f9f72a09 commit 2467f4f6a533a28047e0b45ce716b9b1f9f72a09 Author: Tom Tromey Date: Fri Apr 24 15:35:01 2020 -0600 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: --- gdb/ChangeLog | 7 +++++++ gdb/psympriv.h | 8 ++++++++ gdb/psymtab.c | 53 +++++++++++++++++++++++++++++------------------------ 3 files changed, 44 insertions(+), 24 deletions(-) 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) {