This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Make psymtab range adapter a method on objfile


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f252c6d5dc49cb27838e153e863f16ea7895859e

commit f252c6d5dc49cb27838e153e863f16ea7895859e
Author: Tom Tromey <tom@tromey.com>
Date:   Wed Jan 16 06:37:15 2019 -0700

    Make psymtab range adapter a method on objfile
    
    This removes the objfile_psymtabs class in favor of a method on
    objfile and on psymtab_storage.
    
    2019-01-16  Tom Tromey  <tom@tromey.com>
    
    	* objfiles.h (struct objfile) <psymtabs>: New method.
    	(class objfile_psymtabs): Remove.
    	* psymtab.h (class psymtab_storage) <partial_symtab_range>: New
    	typedef.
    	<range>: New method.
    	(require_partial_symbols): Change return type.
    	* psymtab.c (require_partial_symbols)
    	(psym_expand_symtabs_matching): Update.
    	* mdebugread.c (parse_partial_symbols): Update.
    	* dbxread.c (dbx_end_psymtab): Update.

Diff:
---
 gdb/ChangeLog    | 13 +++++++++++++
 gdb/dbxread.c    |  2 +-
 gdb/mdebugread.c |  2 +-
 gdb/objfiles.h   | 21 ++++++++-------------
 gdb/psymtab.c    |  6 +++---
 gdb/psymtab.h    | 15 ++++++++++++---
 6 files changed, 38 insertions(+), 21 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index d3b16f6..4e562fc 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,16 @@
+2019-01-16  Tom Tromey  <tom@tromey.com>
+
+	* objfiles.h (struct objfile) <psymtabs>: New method.
+	(class objfile_psymtabs): Remove.
+	* psymtab.h (class psymtab_storage) <partial_symtab_range>: New
+	typedef.
+	<range>: New method.
+	(require_partial_symbols): Change return type.
+	* psymtab.c (require_partial_symbols)
+	(psym_expand_symtabs_matching): Update.
+	* mdebugread.c (parse_partial_symbols): Update.
+	* dbxread.c (dbx_end_psymtab): Update.
+
 2019-01-15  Tom Tromey  <tom@tromey.com>
 
 	* symtab.c (lookup_objfile_from_block)
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index 25bcc27..60d384b 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -2011,7 +2011,7 @@ dbx_end_psymtab (struct objfile *objfile, struct partial_symtab *pst,
          address, set it to our starting address.  Take care to not set our
          own ending address to our starting address.  */
 
-      for (partial_symtab *p1 : objfile_psymtabs (objfile))
+      for (partial_symtab *p1 : objfile->psymtabs ())
 	if (!p1->text_high_valid && p1->text_low_valid && p1 != pst)
 	  p1->set_text_high (pst->raw_text_low ());
     }
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index 4bdf973..accf07c 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -3684,7 +3684,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 	  && save_pst->text_low_valid
 	  && !(objfile->flags & OBJF_REORDERED))
 	{
-	  for (partial_symtab *iter : objfile_psymtabs (objfile))
+	  for (partial_symtab *iter : objfile->psymtabs ())
 	    {
 	      if (save_pst != iter
 		  && save_pst->raw_text_low () >= iter->raw_text_low ()
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 2cf6195..5299a3c 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -293,6 +293,14 @@ struct objfile
 
   DISABLE_COPY_AND_ASSIGN (objfile);
 
+  /* A range adapter that makes it possible to iterate over all
+     psymtabs in one objfile.  */
+
+  psymtab_storage::partial_symtab_range psymtabs ()
+  {
+    return partial_symtabs->range ();
+  }
+
   /* Reset the storage for the partial symbol tables.  */
 
   void reset_psymtabs ()
@@ -642,19 +650,6 @@ private:
   struct objfile *m_objfile;
 };
 
-/* A range adapter that makes it possible to iterate over all
-   psymtabs in one objfile.  */
-
-class objfile_psymtabs : public next_adapter<struct partial_symtab>
-{
-public:
-
-  explicit objfile_psymtabs (struct objfile *objfile)
-    : next_adapter<struct partial_symtab> (objfile->partial_symtabs->psymtabs)
-  {
-  }
-};
-
 #define ALL_OBJFILE_OSECTIONS(objfile, osect)	\
   for (osect = objfile->sections; osect < objfile->sections_end; osect++) \
     if (osect->the_bfd_section == NULL)					\
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 776f59c..17db297 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -104,7 +104,7 @@ psymtab_storage::allocate_psymtab ()
 
 /* See psymtab.h.  */
 
-objfile_psymtabs
+psymtab_storage::partial_symtab_range
 require_partial_symbols (struct objfile *objfile, int verbose)
 {
   if ((objfile->flags & OBJF_PSYMTABS_READ) == 0)
@@ -129,7 +129,7 @@ require_partial_symbols (struct objfile *objfile, int verbose)
 	}
     }
 
-  return objfile_psymtabs (objfile);
+  return objfile->psymtabs ();
 }
 
 /* Helper function for psym_map_symtabs_matching_filename that
@@ -1341,7 +1341,7 @@ psym_expand_symtabs_matching
   for (partial_symtab *ps : require_partial_symbols (objfile, 1))
     ps->searched_flag = PST_NOT_SEARCHED;
 
-  for (partial_symtab *ps : objfile_psymtabs (objfile))
+  for (partial_symtab *ps : objfile->psymtabs ())
     {
       QUIT;
 
diff --git a/gdb/psymtab.h b/gdb/psymtab.h
index 26aeb29..3ee5eee 100644
--- a/gdb/psymtab.h
+++ b/gdb/psymtab.h
@@ -92,6 +92,16 @@ public:
 
   struct partial_symtab *allocate_psymtab ();
 
+  typedef next_adapter<struct partial_symtab> partial_symtab_range;
+
+  /* A range adapter that makes it possible to iterate over all
+     psymtabs in one objfile.  */
+
+  partial_symtab_range range ()
+  {
+    return partial_symtab_range (psymtabs);
+  }
+
 
   /* Each objfile points to a linked list of partial symtabs derived from
      this file, one partial symtab structure for each compilation unit
@@ -144,8 +154,7 @@ extern const struct quick_symbol_functions dwarf2_debug_names_functions;
    are loaded.  This function returns a range adapter suitable for
    iterating over the psymtabs of OBJFILE.  */
 
-class objfile_psymtabs;
-extern objfile_psymtabs require_partial_symbols (struct objfile *objfile,
-						 int verbose);
+extern psymtab_storage::partial_symtab_range require_partial_symbols
+    (struct objfile *objfile, int verbose);
 
 #endif /* PSYMTAB_H */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]