From: Tom Tromey Date: Sat, 8 Feb 2020 20:40:54 +0000 (-0700) Subject: Convert dwarf2_section_size to a method X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2c7d5afccfea519b7cb53d76673d5aca1a00bacc;p=binutils-gdb.git Convert dwarf2_section_size to a method This changes dwarf2_section_size to be a method on dwarf2_section_info. 2020-02-08 Tom Tromey * dwarf2/read.c (dwarf2_section_size): Remove. (error_check_comp_unit_head, dwarf2_symbol_mark_computed): Update. * dwarf2/section.h (struct dwarf2_section_info) : New method. Change-Id: I12928fee5c84350ce98883e329357b86888d639b --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index b8d744e134c..10c8bf5baf0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2020-02-08 Tom Tromey + + * dwarf2/read.c (dwarf2_section_size): Remove. + (error_check_comp_unit_head, dwarf2_symbol_mark_computed): + Update. + * dwarf2/section.h (struct dwarf2_section_info) : New method. + 2020-02-08 Tom Tromey * dwarf2/read.c (read_initial_length): Move to leb.c. diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 4ff2a4ca326..2ba53a14ef8 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -2073,22 +2073,6 @@ dwarf2_per_objfile::locate_sections (bfd *abfd, asection *sectp, this->has_section_at_zero = true; } -/* A helper function that returns the size of a section in a safe way. - If you are positive that the section has been read before using the - size, then it is safe to refer to the dwarf2_section_info object's - "size" field directly. In other cases, you must call this - function, because for compressed sections the size field is not set - correctly until the section has been read. */ - -static bfd_size_type -dwarf2_section_size (struct objfile *objfile, - struct dwarf2_section_info *info) -{ - if (!info->readin) - info->read (objfile); - return info->size; -} - /* Fill in SECTP, BUFP and SIZEP with section info, given OBJFILE and SECTION_NAME. */ @@ -6092,7 +6076,7 @@ error_check_comp_unit_head (struct dwarf2_per_objfile *dwarf2_per_objfile, const char *filename = section->get_file_name (); if (to_underlying (header->abbrev_sect_off) - >= dwarf2_section_size (dwarf2_per_objfile->objfile, abbrev_section)) + >= abbrev_section->get_size (dwarf2_per_objfile->objfile)) error (_("Dwarf Error: bad offset (%s) in compilation unit header " "(offset %s + 6) [in module %s]"), sect_offset_str (header->abbrev_sect_off), @@ -24395,7 +24379,7 @@ dwarf2_symbol_mark_computed (const struct attribute *attr, struct symbol *sym, /* .debug_loc{,.dwo} may not exist at all, or the offset may be outside the section. If so, fall through to the complaint in the other branch. */ - && DW_UNSND (attr) < dwarf2_section_size (objfile, section)) + && DW_UNSND (attr) < section->get_size (objfile)) { struct dwarf2_loclist_baton *baton; diff --git a/gdb/dwarf2/section.h b/gdb/dwarf2/section.h index f76f1ef7bf5..8ddedcaf761 100644 --- a/gdb/dwarf2/section.h +++ b/gdb/dwarf2/section.h @@ -81,6 +81,19 @@ struct dwarf2_section_info If the section is compressed, uncompress it before returning. */ void read (struct objfile *objfile); + /* A helper function that returns the size of a section in a safe way. + If you are positive that the section has been read before using the + size, then it is safe to refer to the dwarf2_section_info object's + "size" field directly. In other cases, you must call this + function, because for compressed sections the size field is not set + correctly until the section has been read. */ + bfd_size_type get_size (struct objfile *objfile) + { + if (!readin) + read (objfile); + return size; + } + union { /* If this is a real section, the bfd section. */