Use ALL_PRIMARY_SYMTABS instead of ALL_SYMTABS in some places.
authorDoug Evans <xdje42@gmail.com>
Fri, 7 Nov 2014 01:27:55 +0000 (17:27 -0800)
committerDoug Evans <xdje42@gmail.com>
Fri, 7 Nov 2014 01:27:55 +0000 (17:27 -0800)
Non-primary symtabs share the block vector with their primary symtabs.
In these cases there's no need to use ALL_SYMTABS.

gdb/ChangeLog:

* ada-lang.c (ada_make_symbol_completion_list): Use
ALL_PRIMARY_SYMTABS instead of ALL_SYMTABS.
* symtab.c (lookup_objfile_from_block): Ditto.

gdb/ChangeLog
gdb/ada-lang.c
gdb/symtab.c

index eb227f6..89937e2 100644 (file)
@@ -1,5 +1,11 @@
 2014-11-06  Doug Evans  <xdje42@gmail.com>
 
+       * ada-lang.c (ada_make_symbol_completion_list): Use
+       ALL_PRIMARY_SYMTABS instead of ALL_SYMTABS.
+       * symtab.c (lookup_objfile_from_block): Ditto.
+
+2014-11-06  Doug Evans  <xdje42@gmail.com>
+
        * gdbtypes.h (TYPE_CODE_CLASS): Delete.  All uses changed to use
        TYPE_CODE_STRUCT.
 
index 5793cd2..4320eec 100644 (file)
@@ -6212,9 +6212,11 @@ ada_make_symbol_completion_list (const char *text0, const char *word,
     }
 
   /* Go through the symtabs and check the externs and statics for
-     symbols which match.  */
+     symbols which match.
+     Non-primary symtabs share the block vector with their primary symtabs
+     so we use ALL_PRIMARY_SYMTABS here instead of ALL_SYMTABS.  */
 
-  ALL_SYMTABS (objfile, s)
+  ALL_PRIMARY_SYMTABS (objfile, s)
   {
     QUIT;
     b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), GLOBAL_BLOCK);
@@ -6226,7 +6228,7 @@ ada_make_symbol_completion_list (const char *text0, const char *word,
     }
   }
 
-  ALL_SYMTABS (objfile, s)
+  ALL_PRIMARY_SYMTABS (objfile, s)
   {
     QUIT;
     b = BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), STATIC_BLOCK);
index 01ddb91..e9f37bc 100644 (file)
@@ -1549,8 +1549,10 @@ lookup_objfile_from_block (const struct block *block)
     return NULL;
 
   block = block_global_block (block);
-  /* Go through SYMTABS.  */
-  ALL_SYMTABS (obj, s)
+  /* Go through SYMTABS.
+     Non-primary symtabs share the block vector with their primary symtabs
+     so we use ALL_PRIMARY_SYMTABS here instead of ALL_SYMTABS.  */
+  ALL_PRIMARY_SYMTABS (obj, s)
     if (block == BLOCKVECTOR_BLOCK (BLOCKVECTOR (s), GLOBAL_BLOCK))
       {
        if (obj->separate_debug_objfile_backlink)