Convert dwarf2_section_size to a method
authorTom Tromey <tom@tromey.com>
Sat, 8 Feb 2020 20:40:54 +0000 (13:40 -0700)
committerTom Tromey <tom@tromey.com>
Sat, 8 Feb 2020 20:43:24 +0000 (13:43 -0700)
This changes dwarf2_section_size to be a method on
dwarf2_section_info.

2020-02-08  Tom Tromey  <tom@tromey.com>

* dwarf2/read.c (dwarf2_section_size): Remove.
(error_check_comp_unit_head, dwarf2_symbol_mark_computed):
Update.
* dwarf2/section.h (struct dwarf2_section_info) <get_size>: New method.

Change-Id: I12928fee5c84350ce98883e329357b86888d639b

gdb/ChangeLog
gdb/dwarf2/read.c
gdb/dwarf2/section.h

index b8d744e134cac9a69a237534f4dc9a3a54bee715..10c8bf5baf082e8c16cfea6791d790d529bc22c5 100644 (file)
@@ -1,3 +1,10 @@
+2020-02-08  Tom Tromey  <tom@tromey.com>
+
+       * dwarf2/read.c (dwarf2_section_size): Remove.
+       (error_check_comp_unit_head, dwarf2_symbol_mark_computed):
+       Update.
+       * dwarf2/section.h (struct dwarf2_section_info) <get_size>: New method.
+
 2020-02-08  Tom Tromey  <tom@tromey.com>
 
        * dwarf2/read.c (read_initial_length): Move to leb.c.
index 4ff2a4ca326d0d86076450517ed225c940ad3e43..2ba53a14ef8dc33f9e35e7dc4e7258147dfc6923 100644 (file)
@@ -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;
 
index f76f1ef7bf58d7c4b282b25cf7bd14a795bb4f12..8ddedcaf76171b384d4235da81ba10b04678ed2e 100644 (file)
@@ -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.  */