Change end_psymtab_common to a method
authorTom Tromey <tom@tromey.com>
Sun, 1 Nov 2020 16:51:13 +0000 (09:51 -0700)
committerTom Tromey <tom@tromey.com>
Sun, 1 Nov 2020 16:51:15 +0000 (09:51 -0700)
This changes end_psymtab_common to be a method on partial_symtab.
This seems a little cleaner to me.

gdb/ChangeLog
2020-11-01  Tom Tromey  <tom@tromey.com>

* dbxread.c (dbx_end_psymtab): Update.
* dwarf2/read.c (process_psymtab_comp_unit_reader)
(build_type_psymtabs_reader): Update.
* xcoffread.c (xcoff_end_psymtab): Update.
* ctfread.c (scan_partial_symbols): Update.
* psymtab.c (sort_pst_symbols): Remove.
(partial_symtab::end): Rename from end_psymtab_common.  Inline
sort_pst_symbols.
* psympriv.h (struct partial_symtab) <end>: New method.
(end_psymtab_common): Don't declare.

gdb/ChangeLog
gdb/ctfread.c
gdb/dbxread.c
gdb/dwarf2/read.c
gdb/psympriv.h
gdb/psymtab.c
gdb/xcoffread.c

index f34932d16b84578b494430b7bc9a41cfd5558597..8457c754ed0f6d41d0b3249dc659a1e6eb8cb482 100644 (file)
@@ -1,3 +1,16 @@
+2020-11-01  Tom Tromey  <tom@tromey.com>
+
+       * dbxread.c (dbx_end_psymtab): Update.
+       * dwarf2/read.c (process_psymtab_comp_unit_reader)
+       (build_type_psymtabs_reader): Update.
+       * xcoffread.c (xcoff_end_psymtab): Update.
+       * ctfread.c (scan_partial_symbols): Update.
+       * psymtab.c (sort_pst_symbols): Remove.
+       (partial_symtab::end): Rename from end_psymtab_common.  Inline
+       sort_pst_symbols.
+       * psympriv.h (struct partial_symtab) <end>: New method.
+       (end_psymtab_common): Don't declare.
+
 2020-11-01  Tom Tromey  <tom@tromey.com>
 
        * symmisc.c (count_psyms): New function.
index b8d8434f6cab016719ac32ddbc246ee0d38e07a5..52eef8013003783fe68bb1b131cf8e4a69f8baf7 100644 (file)
@@ -1464,7 +1464,7 @@ scan_partial_symbols (ctf_file_t *cfp, struct objfile *of)
                        0, language_c, of);
     }
 
-  end_psymtab_common (pst);
+  pst->end ();
 }
 
 /* Read CTF debugging information from a BFD section.  This is
index f9ee00718db3769c8b2ff40b63e7f0f7defe79d6..0d8c59e397ee9e818ff443343604f7515beafd17 100644 (file)
@@ -2004,7 +2004,7 @@ dbx_end_psymtab (struct objfile *objfile, legacy_psymtab *pst,
 
   /* End of kludge for patching Solaris textlow and texthigh.  */
 
-  end_psymtab_common (pst);
+  pst->end ();
 
   pst->number_of_dependencies = number_dependencies;
   if (number_dependencies)
index d3d88b18da074a2027b2f7fa3755e6b5fe59f76b..19131da0b1d33141a025ea45f96dc72cc15b6a09 100644 (file)
@@ -7634,7 +7634,7 @@ process_psymtab_comp_unit_reader (const struct die_reader_specs *reader,
                                                  best_highpc + baseaddr)
                      - baseaddr);
 
-  end_psymtab_common (pst);
+  pst->end ();
 
   if (!cu->per_cu->imported_symtabs_empty ())
     {
@@ -7760,7 +7760,7 @@ build_type_psymtabs_reader (const struct die_reader_specs *reader,
   highpc = (CORE_ADDR) 0;
   scan_partial_symbols (first_die, &lowpc, &highpc, 0, cu);
 
-  end_psymtab_common (pst);
+  pst->end ();
 }
 
 /* Struct used to sort TUs by their abbreviation table offset.  */
index 53dfb1b1cdfdbe6e4b33c926ee2aa9e079156bd9..ac2c6117851eb3042acb3747b07b4309ca32abbe 100644 (file)
@@ -248,6 +248,10 @@ struct partial_symtab
                    struct objfile *objfile);
 
 
+  /* Indicate that this partial symtab is complete.  */
+
+  void end ();
+
   /* Chain of all existing partial symtabs.  */
 
   struct partial_symtab *next = nullptr;
@@ -436,8 +440,6 @@ struct legacy_psymtab : public standard_psymtab
   void *read_symtab_private = nullptr;
 };
 
-extern void end_psymtab_common (struct partial_symtab *);
-
 /* Used when recording partial symbol tables.  On destruction,
    discards any partial symbol tables that have been built.  However,
    the tables can be kept by calling the "keep" method.  */
index dc802a60f3cc2b02687d50efca3122e1e42e8856..ef190d51146ebbfcb958f0e4402dcdb32051841f 100644 (file)
@@ -1430,19 +1430,6 @@ const struct quick_symbol_functions psym_functions =
 
 \f
 
-static void
-sort_pst_symbols (struct partial_symtab *pst)
-{
-  /* Sort the global list; don't sort the static list.  */
-  std::sort (pst->global_psymbols.begin (),
-            pst->global_psymbols.end (),
-            [] (partial_symbol *s1, partial_symbol *s2)
-    {
-      return strcmp_iw_ordered (s1->ginfo.search_name (),
-                               s2->ginfo.search_name ()) < 0;
-    });
-}
-
 /* Partially fill a partial symtab.  It will be completely filled at
    the end of the symbol list.  */
 
@@ -1458,12 +1445,19 @@ partial_symtab::partial_symtab (const char *filename,
 /* Perform "finishing up" operations of a partial symtab.  */
 
 void
-end_psymtab_common (struct partial_symtab *pst)
+partial_symtab::end ()
 {
-  pst->global_psymbols.shrink_to_fit ();
-  pst->static_psymbols.shrink_to_fit ();
+  global_psymbols.shrink_to_fit ();
+  static_psymbols.shrink_to_fit ();
 
-  sort_pst_symbols (pst);
+  /* Sort the global list; don't sort the static list.  */
+  std::sort (global_psymbols.begin (),
+            global_psymbols.end (),
+            [] (partial_symbol *s1, partial_symbol *s2)
+    {
+      return strcmp_iw_ordered (s1->ginfo.search_name (),
+                               s2->ginfo.search_name ()) < 0;
+    });
 }
 
 /* See psymtab.h.  */
index 3383032d1f3a69b94c04237bff8ff11de17b656c..2c837cfbfa6efaa1428ed8568a19daee11219113 100644 (file)
@@ -2000,7 +2000,7 @@ xcoff_end_psymtab (struct objfile *objfile, legacy_psymtab *pst,
     first_fun_line_offset;
   first_fun_line_offset = 0;
 
-  end_psymtab_common (pst);
+  pst->end ();
 
   pst->number_of_dependencies = number_dependencies;
   if (number_dependencies)