gdb: remove symtab::objfile
authorSimon Marchi <simon.marchi@polymtl.ca>
Tue, 29 Mar 2022 20:14:36 +0000 (16:14 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Thu, 7 Apr 2022 17:05:22 +0000 (13:05 -0400)
Same idea as previous patch, but for symtab::objfile.  I find
it clearer without this wrapper, as it shows that the objfile is
common to all symtabs of a given compunit.  Otherwise, you could think
that each symtab (of a given compunit) can have a specific objfile.

Change-Id: Ifc0dbc7ec31a06eefa2787c921196949d5a6fcc6

16 files changed:
gdb/ada-lang.c
gdb/annotate.c
gdb/breakpoint.c
gdb/cli/cli-cmds.c
gdb/guile/scm-symtab.c
gdb/linespec.c
gdb/mi/mi-symbol-cmds.c
gdb/objfiles.c
gdb/python/py-symtab.c
gdb/source-cache.c
gdb/source.c
gdb/symmisc.c
gdb/symtab.c
gdb/symtab.h
gdb/tui/tui-source.c
gdb/tui/tui-winsource.c

index 3a1624e9d26ea3d09bc8354375fef67c76deedc2..d819038e63b6b328083bb42221010bac82c381a9 100644 (file)
@@ -11862,8 +11862,8 @@ is_known_support_routine (struct frame_info *frame)
       re_comp (known_runtime_file_name_patterns[i]);
       if (re_exec (lbasename (sal.symtab->filename)))
        return 1;
-      if (sal.symtab->objfile () != NULL
-         && re_exec (objfile_name (sal.symtab->objfile ())))
+      if (sal.symtab->compunit ()->objfile () != NULL
+         && re_exec (objfile_name (sal.symtab->compunit ()->objfile ())))
        return 1;
     }
 
index c16eb4651f3b32192a2db719ac49d2cdf141dc88..6ae314572221cdfe57042e9a21523c22c7cd74de 100644 (file)
@@ -448,7 +448,7 @@ annotate_source_line (struct symtab *s, int line, int mid_statement,
        return false;
 
       annotate_source (s->fullname, line, (int) (*offsets)[line - 1],
-                      mid_statement, s->objfile ()->arch (),
+                      mid_statement, s->compunit ()->objfile ()->arch (),
                       pc);
 
       /* Update the current symtab and line.  */
index 1b340bd78d1c280439a06a253b0b22de8ef0d977..b21d83d8019a1654baefdac74c6d74ef6a076953 100644 (file)
@@ -7209,7 +7209,7 @@ get_sal_arch (struct symtab_and_line sal)
   if (sal.section)
     return sal.section->objfile->arch ();
   if (sal.symtab)
-    return sal.symtab->objfile ()->arch ();
+    return sal.symtab->compunit ()->objfile ()->arch ();
 
   return NULL;
 }
@@ -9251,8 +9251,9 @@ resolve_sal_pc (struct symtab_and_line *sal)
          sym = block_linkage_function (b);
          if (sym != NULL)
            {
-             fixup_symbol_section (sym, sal->symtab->objfile ());
-             sal->section = sym->obj_section (sal->symtab->objfile ());
+             fixup_symbol_section (sym, sal->symtab->compunit ()->objfile ());
+             sal->section
+               = sym->obj_section (sal->symtab->compunit ()->objfile ());
            }
          else
            {
@@ -14680,7 +14681,7 @@ void
 breakpoint_free_objfile (struct objfile *objfile)
 {
   for (bp_location *loc : all_bp_locations ())
-    if (loc->symtab != NULL && loc->symtab->objfile () == objfile)
+    if (loc->symtab != NULL && loc->symtab->compunit ()->objfile () == objfile)
       loc->symtab = NULL;
 }
 
index 31b493e1c5006f45a167d2060dbc21bd806df3cf..424a8740706c19a2a3749ee5cf521479008d08ce 100644 (file)
@@ -1007,7 +1007,7 @@ edit_command (const char *arg, int from_tty)
            error (_("No source file for address %s."),
                   paddress (get_current_arch (), sal.pc));
 
-         gdbarch = sal.symtab->objfile ()->arch ();
+         gdbarch = sal.symtab->compunit ()->objfile ()->arch ();
          sym = find_pc_function (sal.pc);
          if (sym)
            gdb_printf ("%s is in %s (%s:%d).\n",
@@ -1346,7 +1346,7 @@ list_command (const char *arg, int from_tty)
        error (_("No source file for address %s."),
               paddress (get_current_arch (), sal.pc));
 
-      gdbarch = sal.symtab->objfile ()->arch ();
+      gdbarch = sal.symtab->compunit ()->objfile ()->arch ();
       sym = find_pc_function (sal.pc);
       if (sym)
        gdb_printf ("%s is in %s (%s:%d).\n",
index 386ccf56956445f8ba9f740aa485c6018b12eb67..1ba5cb587b1f1e6683f189dff315cf35af3f0db0 100644 (file)
@@ -109,7 +109,7 @@ stscm_eq_symtab_smob (const void *ap, const void *bp)
 static htab_t
 stscm_objfile_symtab_map (struct symtab *symtab)
 {
-  struct objfile *objfile = symtab->objfile ();
+  struct objfile *objfile = symtab->compunit ()->objfile ();
   htab_t htab = (htab_t) objfile_data (objfile, stscm_objfile_data_key);
 
   if (htab == NULL)
@@ -348,7 +348,7 @@ gdbscm_symtab_objfile (SCM self)
     = stscm_get_valid_symtab_smob_arg_unsafe (self, SCM_ARG1, FUNC_NAME);
   const struct symtab *symtab = st_smob->symtab;
 
-  return ofscm_scm_from_objfile (symtab->objfile ());
+  return ofscm_scm_from_objfile (symtab->compunit ()->objfile ());
 }
 
 /* (symtab-global-block <gdb:symtab>) -> <gdb:block>
@@ -366,7 +366,7 @@ gdbscm_symtab_global_block (SCM self)
   blockvector = symtab->compunit ()->blockvector ();
   block = BLOCKVECTOR_BLOCK (blockvector, GLOBAL_BLOCK);
 
-  return bkscm_scm_from_block (block, symtab->objfile ());
+  return bkscm_scm_from_block (block, symtab->compunit ()->objfile ());
 }
 
 /* (symtab-static-block <gdb:symtab>) -> <gdb:block>
@@ -384,7 +384,7 @@ gdbscm_symtab_static_block (SCM self)
   blockvector = symtab->compunit ()->blockvector ();
   block = BLOCKVECTOR_BLOCK (blockvector, STATIC_BLOCK);
 
-  return bkscm_scm_from_block (block, symtab->objfile ());
+  return bkscm_scm_from_block (block, symtab->compunit ()->objfile ());
 }
 \f
 /* Administrivia for sal (symtab-and-line) smobs.  */
index 5a6b620b33b7480758235b30f2520dcd2bbd327c..10717ac6c43fb36a5b613237c9b3273dbcc870b9 100644 (file)
@@ -4245,10 +4245,10 @@ search_minsyms_for_name (struct collect_info *info,
        {
          set_current_program_space (symtab->pspace ());
          iterate_over_minimal_symbols
-           (symtab->objfile (), name,
+           (symtab->compunit ()->objfile (), name,
             [&] (struct minimal_symbol *msym)
               {
-                add_minsym (msym, symtab->objfile (), symtab,
+                add_minsym (msym, symtab->compunit ()->objfile (), symtab,
                             info->state->list_mode, &minsyms);
                 return false;
               });
index 1b08854296c0e753944c2918ac2c3083f6eb6f8a..5d6d34129291e8ce62eec4850e5b2dde26089876 100644 (file)
@@ -50,7 +50,7 @@ mi_cmd_symbol_list_lines (const char *command, char **argv, int argc)
      already sorted by increasing values in the symbol table, so no
      need to perform any other sorting.  */
 
-  gdbarch = s->objfile ()->arch ();
+  gdbarch = s->compunit ()->objfile ()->arch ();
 
   ui_out_emit_list list_emitter (uiout, "lines");
   if (s->linetable () != NULL && s->linetable ()->nitems > 0)
index 35b275ad3012a43d4413c6c074ef72f57bf02c0c..ddd94da42a6f5f97392f123a93b0a35b31b8d533 100644 (file)
@@ -591,7 +591,7 @@ objfile::~objfile ()
   {
     struct symtab_and_line cursal = get_current_source_symtab_and_line ();
 
-    if (cursal.symtab && cursal.symtab->objfile () == this)
+    if (cursal.symtab && cursal.symtab->compunit ()->objfile () == this)
       clear_current_source_symtab_and_line ();
   }
 
index 7ce4292c325dc0100b4fa5ed19f470426b97b203..0a6ee014ea7395cc77e3c79995175cc79008291c 100644 (file)
@@ -119,7 +119,7 @@ stpy_get_objfile (PyObject *self, void *closure)
 
   STPY_REQUIRE_VALID (self, symtab);
 
-  return objfile_to_objfile_object (symtab->objfile ()).release ();
+  return objfile_to_objfile_object (symtab->compunit ()->objfile ()).release ();
 }
 
 /* Getter function for symtab.producer.  */
@@ -183,7 +183,7 @@ stpy_global_block (PyObject *self, PyObject *args)
 
   blockvector = symtab->compunit ()->blockvector ();
   block = BLOCKVECTOR_BLOCK (blockvector, GLOBAL_BLOCK);
-  return block_to_block_object (block, symtab->objfile ());
+  return block_to_block_object (block, symtab->compunit ()->objfile ());
 }
 
 /* Return the STATIC_BLOCK of the underlying symtab.  */
@@ -199,7 +199,7 @@ stpy_static_block (PyObject *self, PyObject *args)
 
   blockvector = symtab->compunit ()->blockvector ();
   block = BLOCKVECTOR_BLOCK (blockvector, STATIC_BLOCK);
-  return block_to_block_object (block, symtab->objfile ());
+  return block_to_block_object (block, symtab->compunit ()->objfile ());
 }
 
 /* Implementation of gdb.Symtab.linetable (self) -> gdb.LineTable.
@@ -247,7 +247,7 @@ stpy_dealloc (PyObject *obj)
     symtab->prev->next = symtab->next;
   else if (symtab->symtab)
     {
-      set_objfile_data (symtab->symtab->objfile (),
+      set_objfile_data (symtab->symtab->compunit ()->objfile (),
                        stpy_objfile_data_key, symtab->next);
     }
   if (symtab->next)
@@ -330,7 +330,7 @@ salpy_dealloc (PyObject *self)
     self_sal->prev->next = self_sal->next;
   else if (self_sal->symtab != Py_None)
     set_objfile_data
-      (symtab_object_to_symtab (self_sal->symtab)->objfile (),
+      (symtab_object_to_symtab (self_sal->symtab)->compunit ()->objfile (),
        salpy_objfile_data_key, self_sal->next);
 
   if (self_sal->next)
@@ -378,12 +378,12 @@ set_sal (sal_object *sal_obj, struct symtab_and_line sal)
       symtab *symtab = symtab_object_to_symtab (sal_obj->symtab);
 
       sal_obj->next
-       = ((sal_object *) objfile_data (symtab->objfile (),
+       = ((sal_object *) objfile_data (symtab->compunit ()->objfile (),
                                        salpy_objfile_data_key));
       if (sal_obj->next)
        sal_obj->next->prev = sal_obj;
 
-      set_objfile_data (symtab->objfile (),
+      set_objfile_data (symtab->compunit ()->objfile (),
                        salpy_objfile_data_key, sal_obj);
     }
   else
@@ -406,10 +406,12 @@ set_symtab (symtab_object *obj, struct symtab *symtab)
     {
       obj->next
        = ((symtab_object *)
-          objfile_data (symtab->objfile (), stpy_objfile_data_key));
+          objfile_data (symtab->compunit ()->objfile (),
+                        stpy_objfile_data_key));
       if (obj->next)
        obj->next->prev = obj;
-      set_objfile_data (symtab->objfile (), stpy_objfile_data_key, obj);
+      set_objfile_data (symtab->compunit ()->objfile (),
+                       stpy_objfile_data_key, obj);
     }
   else
     obj->next = NULL;
index 3f0683b2096de75f91ff93ff197f2c7f26e8ff7b..2cc5b37a8179753e62d6dbfd5bfb2d5bd02850a2 100644 (file)
@@ -107,8 +107,9 @@ source_cache::get_plain_source_lines (struct symtab *s,
     perror_with_name (symtab_to_filename_for_display (s));
 
   time_t mtime = 0;
-  if (s->objfile () != NULL && s->objfile ()->obfd != NULL)
-    mtime = s->objfile ()->mtime;
+  if (s->compunit ()->objfile () != NULL
+      && s->compunit ()->objfile ()->obfd != NULL)
+    mtime = s->compunit ()->objfile ()->mtime;
   else if (current_program_space->exec_bfd ())
     mtime = current_program_space->ebfd_mtime;
 
index 2025c93e93e3d8839d1599a30d2232dbe82358ed..24f53f68e35bc34a0ab0e74239f8b50fe6c1d534 100644 (file)
@@ -1560,7 +1560,7 @@ info_line_command (const char *arg, int from_tty)
       else if (sal.line > 0
               && find_line_pc_range (sal, &start_pc, &end_pc))
        {
-         struct gdbarch *gdbarch = sal.symtab->objfile ()->arch ();
+         gdbarch *gdbarch = sal.symtab->compunit ()->objfile ()->arch ();
 
          if (start_pc == end_pc)
            {
index 1843eb87d05e5d8f314aae81f2caccf2977d4930..1779816348fc6ff18dcf0fe8262e87b7cd8737dd 100644 (file)
@@ -131,7 +131,7 @@ dump_objfile (struct objfile *objfile)
              gdb_printf ("%s at %s",
                          symtab_to_filename_for_display (symtab),
                          host_address_to_string (symtab));
-             if (symtab->objfile () != objfile)
+             if (symtab->compunit ()->objfile () != objfile)
                gdb_printf (", NOT ON CHAIN!");
              gdb_printf ("\n");
            }
@@ -234,7 +234,7 @@ dump_msymbols (struct objfile *objfile, struct ui_file *outfile)
 static void
 dump_symtab_1 (struct symtab *symtab, struct ui_file *outfile)
 {
-  struct objfile *objfile = symtab->objfile ();
+  struct objfile *objfile = symtab->compunit ()->objfile ();
   struct gdbarch *gdbarch = objfile->arch ();
   int i;
   struct mdict_iterator miter;
index 4204423cb25f41466ab37e9a79c946b433f9f625..eeb16e4643b8a054a083bb398ca4c5d951b31e5b 100644 (file)
@@ -338,7 +338,7 @@ search_domain_name (enum search_domain e)
 program_space *
 symtab::pspace () const
 {
-  return this->objfile ()->pspace;
+  return this->compunit ()->objfile ()->pspace;
 }
 
 /* See symtab.h.  */
@@ -3724,7 +3724,7 @@ find_function_start_sal_1 (CORE_ADDR func_addr, obj_section *section,
       && (sal.symtab->compunit ()->locations_valid ()
          || sal.symtab->language () == language_asm))
     {
-      struct gdbarch *gdbarch = sal.symtab->objfile ()->arch ();
+      struct gdbarch *gdbarch = sal.symtab->compunit ()->objfile ()->arch ();
 
       sal.pc = func_addr;
       if (gdbarch_skip_entrypoint_p (gdbarch))
@@ -6593,7 +6593,7 @@ struct objfile *
 symbol_objfile (const struct symbol *symbol)
 {
   gdb_assert (symbol->is_objfile_owned ());
-  return symbol->owner.symtab->objfile ();
+  return symbol->owner.symtab->compunit ()->objfile ();
 }
 
 /* See symtab.h.  */
@@ -6603,7 +6603,7 @@ symbol_arch (const struct symbol *symbol)
 {
   if (!symbol->is_objfile_owned ())
     return symbol->owner.arch;
-  return symbol->owner.symtab->objfile ()->arch ();
+  return symbol->owner.symtab->compunit ()->objfile ()->arch ();
 }
 
 /* See symtab.h.  */
index 8852590857e6018a034dc5cb4771298f8b2f330d..87d483505297f13c3e2e1ec5be274c5ad1088602 100644 (file)
@@ -1476,8 +1476,6 @@ struct symtab
     m_language = language;
   }
 
-  struct objfile *objfile () const;
-
   program_space *pspace () const;
 
   /* Unordered chain of all filetabs in the compunit,  with the exception
@@ -1753,12 +1751,6 @@ struct compunit_symtab
 
 using compunit_symtab_range = next_range<compunit_symtab>;
 
-inline struct objfile *
-symtab::objfile () const
-{
-  return this->compunit ()->objfile ();
-}
-
 /* Return the language of CUST.  */
 
 extern enum language compunit_language (const struct compunit_symtab *cust);
index 294ea1c7f1368aa985704246553f29f7b72e0ff2..208889d0bf7aae3837959d1c31e372b1a7174aac 100644 (file)
@@ -70,7 +70,7 @@ tui_source_window::set_contents (struct gdbarch *arch,
   m_fullname = make_unique_xstrdup (symtab_to_fullname (s));
 
   cur_line = 0;
-  m_gdbarch = s->objfile ()->arch ();
+  m_gdbarch = s->compunit ()->objfile ()->arch ();
   m_start_line_or_addr.loa = LOA_LINE;
   cur_line_no = m_start_line_or_addr.u.line_no = line_no;
 
index c8a1c1aa64bcff7bdcd6f6e3b1d72d3ef71ebe8d..87b8dcff154b5cc3d5a6d4607e962ecbcb238dac 100644 (file)
@@ -199,7 +199,7 @@ tui_update_source_windows_with_line (struct symtab_and_line sal)
   if (sal.symtab != nullptr)
     {
       find_line_pc (sal.symtab, sal.line, &sal.pc);
-      gdbarch = sal.symtab->objfile ()->arch ();
+      gdbarch = sal.symtab->compunit ()->objfile ()->arch ();
     }
 
   for (struct tui_source_window_base *win_info : tui_source_windows ())