From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2126) id 2C491385737B; Wed, 20 Apr 2022 15:12:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2C491385737B Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Tom Tromey To: gdb-cvs@sourceware.org Subject: [binutils-gdb] Let mapped index classes create the quick_symbol_functions object X-Act-Checkin: binutils-gdb X-Git-Author: Tom Tromey X-Git-Refname: refs/heads/master X-Git-Oldrev: 6555809e3e5ca516c7c1ffca494118ec7fd16934 X-Git-Newrev: 32ae6b930c293278c0a57d40c468653173ad09b5 Message-Id: <20220420151202.2C491385737B@sourceware.org> Date: Wed, 20 Apr 2022 15:12:02 +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: Wed, 20 Apr 2022 15:12:02 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D32ae6b930c29= 3278c0a57d40c468653173ad09b5 commit 32ae6b930c293278c0a57d40c468653173ad09b5 Author: Tom Tromey Date: Mon Mar 29 17:58:21 2021 -0600 Let mapped index classes create the quick_symbol_functions object =20 This changes the mapped index classes to create the quick_symbol_functions objects. This is a step toward having a more abstract interface to mapped indices. Diff: --- gdb/dwarf2/mapped-index.h | 4 ++++ gdb/dwarf2/read.c | 31 ++++++++++++++++++++++++------- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/gdb/dwarf2/mapped-index.h b/gdb/dwarf2/mapped-index.h index fb6828e43df..9f51a9e6578 100644 --- a/gdb/dwarf2/mapped-index.h +++ b/gdb/dwarf2/mapped-index.h @@ -77,6 +77,10 @@ struct mapped_index_base return false; } =20 + /* Return a quick_symbol_functions instance that refers back to this + mapped_index_base. */ + virtual quick_symbol_functions_up make_quick_functions () const =3D 0; + /* Build the symbol name component sorted vector, if we haven't yet. */ void build_name_components (dwarf2_per_objfile *per_objfile); diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 3f44c72565b..c0bb18a26f3 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -243,6 +243,8 @@ struct mapped_index final : public mapped_index_base =20 size_t symbol_name_count () const override { return this->symbol_table.size () / 2; } + + quick_symbol_functions_up make_quick_functions () const override; }; =20 /* A description of the mapped .debug_names. @@ -292,6 +294,8 @@ struct mapped_debug_names final : public mapped_index_b= ase =20 size_t symbol_name_count () const override { return this->name_count; } + + quick_symbol_functions_up make_quick_functions () const override; }; =20 /* See dwarf2/read.h. */ @@ -1887,8 +1891,14 @@ make_dwarf_gdb_index () return quick_symbol_functions_up (new dwarf2_gdb_index); } =20 -static quick_symbol_functions_up -make_dwarf_debug_names () +quick_symbol_functions_up +mapped_index::make_quick_functions () const +{ + return quick_symbol_functions_up (new dwarf2_gdb_index); +} + +quick_symbol_functions_up +mapped_debug_names::make_quick_functions () const { return quick_symbol_functions_up (new dwarf2_debug_names_index); } @@ -3494,6 +3504,11 @@ public: return m_symbol_table[idx]; } =20 + quick_symbol_functions_up make_quick_functions () const override + { + return nullptr; + } + private: gdb::array_view m_symbol_table; }; @@ -5281,7 +5296,8 @@ dwarf2_initialize_objfile (struct objfile *objfile) if (per_bfd->debug_names_table !=3D nullptr) { dwarf_read_debug_printf ("re-using shared debug names table"); - objfile->qf.push_front (make_dwarf_debug_names ()); + objfile->qf.push_front + (per_bfd->debug_names_table->make_quick_functions ()); return; } =20 @@ -5290,7 +5306,7 @@ dwarf2_initialize_objfile (struct objfile *objfile) if (per_bfd->index_table !=3D nullptr) { dwarf_read_debug_printf ("re-using shared index table"); - objfile->qf.push_front (make_dwarf_gdb_index ()); + objfile->qf.push_front (per_bfd->index_table->make_quick_functions (= )); return; } =20 @@ -5304,7 +5320,8 @@ dwarf2_initialize_objfile (struct objfile *objfile) if (dwarf2_read_debug_names (per_objfile)) { dwarf_read_debug_printf ("found debug names"); - objfile->qf.push_front (make_dwarf_debug_names ()); + objfile->qf.push_front + (per_bfd->debug_names_table->make_quick_functions ()); return; } =20 @@ -5313,7 +5330,7 @@ dwarf2_initialize_objfile (struct objfile *objfile) get_gdb_index_contents_from_section)) { dwarf_read_debug_printf ("found gdb index from file"); - objfile->qf.push_front (make_dwarf_gdb_index ()); + objfile->qf.push_front (per_bfd->index_table->make_quick_functions (= )); return; } =20 @@ -5324,7 +5341,7 @@ dwarf2_initialize_objfile (struct objfile *objfile) { dwarf_read_debug_printf ("found gdb index from cache"); global_index_cache.hit (); - objfile->qf.push_front (make_dwarf_gdb_index ()); + objfile->qf.push_front (per_bfd->index_table->make_quick_functions (= )); return; }