diff options
author | David Carlton <carlton@bactrian.org> | 2003-02-24 23:40:50 +0000 |
---|---|---|
committer | David Carlton <carlton@bactrian.org> | 2003-02-24 23:40:50 +0000 |
commit | 49fa1dc29a207665fae2604a3297db9fb4751597 (patch) | |
tree | 508e03c4c711a2343a3a9ec83644352ad47d830c | |
parent | 0fe19209f9dde2fd4450b13a9e772203cf313eff (diff) | |
download | gdb-49fa1dc29a207665fae2604a3297db9fb4751597.zip gdb-49fa1dc29a207665fae2604a3297db9fb4751597.tar.gz gdb-49fa1dc29a207665fae2604a3297db9fb4751597.tar.bz2 |
2003-02-24 David Carlton <carlton@math.stanford.edu>
* symtab.c (make_symbol_overload_list): Only read in partial
symtabs containing a matching partial symbol.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/symtab.c | 27 |
2 files changed, 10 insertions, 22 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index dce6f50..1aedd24 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,10 @@ 2003-02-24 David Carlton <carlton@math.stanford.edu> + * symtab.c (make_symbol_overload_list): Only read in partial + symtabs containing a matching partial symbol. + +2003-02-24 David Carlton <carlton@math.stanford.edu> + * symtab.c (lookup_partial_symbol): Use strcmp_iw_ordered to do the comparison, not strcmp. * symfile.c (compare_psymbols): Ditto. diff --git a/gdb/symtab.c b/gdb/symtab.c index 1b1e375..cb5ba7f 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -3995,8 +3995,8 @@ make_symbol_overload_list (struct symbol *fsym) sym_return_val = (struct symbol **) xmalloc ((sym_return_val_size + 1) * sizeof (struct symbol *)); sym_return_val[0] = NULL; - /* Look through the partial symtabs for all symbols which begin - by matching OLOAD_NAME. Make sure we read that symbol table in. */ + /* Read in all partial symtabs containing a partial symbol named + OLOAD_NAME. */ ALL_PSYMTABS (objfile, ps) { @@ -4007,26 +4007,9 @@ make_symbol_overload_list (struct symbol *fsym) if (ps->readin) continue; - for (psym = objfile->global_psymbols.list + ps->globals_offset; - psym < (objfile->global_psymbols.list + ps->globals_offset - + ps->n_global_syms); - psym++) - { - /* If interrupted, then quit. */ - QUIT; - /* This will cause the symbol table to be read if it has not yet been */ - s = PSYMTAB_TO_SYMTAB (ps); - } - - for (psym = objfile->static_psymbols.list + ps->statics_offset; - psym < (objfile->static_psymbols.list + ps->statics_offset - + ps->n_static_syms); - psym++) - { - QUIT; - /* This will cause the symbol table to be read if it has not yet been */ - s = PSYMTAB_TO_SYMTAB (ps); - } + if ((lookup_partial_symbol (ps, oload_name, 1, VAR_NAMESPACE) != NULL) + || (lookup_partial_symbol (ps, oload_name, 0, VAR_NAMESPACE) != NULL)) + PSYMTAB_TO_SYMTAB (ps); } /* Search upwards from currently selected frame (so that we can |