[PATCH] Remove objfile parameter from abbrev_table::read
Tom Tromey
tom@tromey.com
Wed Nov 4 23:10:56 GMT 2020
In a longer series that I am working on, I needed to remove the
objfile parameter from abbrev_table::read. It seemed to me that this
was a simple and relatively harmless patch, so I'm sending it now.
gdb/ChangeLog
2020-11-04 Tom Tromey <tom@tromey.com>
* dwarf2/read.c (read_cutu_die_from_dwo)
(cutu_reader::cutu_reader, cutu_reader::cutu_reader)
(build_type_psymtabs_1): Update.
* dwarf2/abbrev.h (struct abbrev_table): Remove objfile
parameter.
* dwarf2/abbrev.c (abbrev_table::read): Remove objfile parameter.
Don't read section.
---
gdb/ChangeLog | 10 ++++++++++
gdb/dwarf2/abbrev.c | 4 +---
gdb/dwarf2/abbrev.h | 7 +++++--
gdb/dwarf2/read.c | 16 ++++++++--------
4 files changed, 24 insertions(+), 13 deletions(-)
diff --git a/gdb/dwarf2/abbrev.c b/gdb/dwarf2/abbrev.c
index 86789e56bec..74a30e72a31 100644
--- a/gdb/dwarf2/abbrev.c
+++ b/gdb/dwarf2/abbrev.c
@@ -91,8 +91,7 @@ abbrev_table::add_abbrev (struct abbrev_info *abbrev)
/* Read in an abbrev table. */
abbrev_table_up
-abbrev_table::read (struct objfile *objfile,
- struct dwarf2_section_info *section,
+abbrev_table::read (struct dwarf2_section_info *section,
sect_offset sect_off)
{
bfd *abfd = section->get_bfd_owner ();
@@ -104,7 +103,6 @@ abbrev_table::read (struct objfile *objfile,
abbrev_table_up abbrev_table (new struct abbrev_table (sect_off));
- section->read (objfile);
abbrev_ptr = section->buffer + to_underlying (sect_off);
abbrev_number = read_unsigned_leb128 (abfd, abbrev_ptr, &bytes_read);
abbrev_ptr += bytes_read;
diff --git a/gdb/dwarf2/abbrev.h b/gdb/dwarf2/abbrev.h
index 888f04ebebb..d52d00b42bf 100644
--- a/gdb/dwarf2/abbrev.h
+++ b/gdb/dwarf2/abbrev.h
@@ -55,8 +55,11 @@ typedef std::unique_ptr<struct abbrev_table> abbrev_table_up;
struct abbrev_table
{
- static abbrev_table_up read (struct objfile *objfile,
- struct dwarf2_section_info *section,
+ /* Read an abbrev table from the indicated section, at the given
+ offset. The caller is responsible for ensuring that the section
+ has already been read. */
+
+ static abbrev_table_up read (struct dwarf2_section_info *section,
sect_offset sect_off);
/* Look up an abbrev in the table.
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 57db648061e..dbf0a3e25b9 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -6926,9 +6926,9 @@ read_cutu_die_from_dwo (dwarf2_cu *cu,
dwo_unit->length = cu->header.get_length ();
}
+ dwo_abbrev_section->read (objfile);
*result_dwo_abbrev_table
- = abbrev_table::read (objfile, dwo_abbrev_section,
- cu->header.abbrev_sect_off);
+ = abbrev_table::read (dwo_abbrev_section, cu->header.abbrev_sect_off);
init_cu_die_reader (result_reader, cu, section, dwo_unit->dwo_file,
result_dwo_abbrev_table->get ());
@@ -7216,9 +7216,9 @@ cutu_reader::cutu_reader (dwarf2_per_cu_data *this_cu,
gdb_assert (cu->header.abbrev_sect_off == abbrev_table->sect_off);
else
{
+ abbrev_section->read (objfile);
m_abbrev_table_holder
- = abbrev_table::read (objfile, abbrev_section,
- cu->header.abbrev_sect_off);
+ = abbrev_table::read (abbrev_section, cu->header.abbrev_sect_off);
abbrev_table = m_abbrev_table_holder.get ();
}
@@ -7360,9 +7360,9 @@ cutu_reader::cutu_reader (dwarf2_per_cu_data *this_cu,
return;
}
+ abbrev_section->read (objfile);
m_abbrev_table_holder
- = abbrev_table::read (objfile, abbrev_section,
- m_new_cu->header.abbrev_sect_off);
+ = abbrev_table::read (abbrev_section, m_new_cu->header.abbrev_sect_off);
init_cu_die_reader (this, m_new_cu.get (), section, dwo_file,
m_abbrev_table_holder.get ());
@@ -7862,9 +7862,9 @@ build_type_psymtabs_1 (dwarf2_per_objfile *per_objfile)
|| tu.abbrev_offset != abbrev_offset)
{
abbrev_offset = tu.abbrev_offset;
+ per_objfile->per_bfd->abbrev.read (per_objfile->objfile);
abbrev_table =
- abbrev_table::read (per_objfile->objfile,
- &per_objfile->per_bfd->abbrev, abbrev_offset);
+ abbrev_table::read (&per_objfile->per_bfd->abbrev, abbrev_offset);
++tu_stats->nr_uniq_abbrev_tables;
}
--
2.17.2
More information about the Gdb-patches
mailing list