mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 01:50:24 +08:00
Simplify version check in dw2_symtab_iter_next
This simplifies the index versio check in dw2_symtab_iter_next, by passing a reference to the index object to this function. This avoids an indirection via the per_bfd object.
This commit is contained in:
@ -2949,7 +2949,8 @@ dw2_symtab_iter_init (struct dw2_symtab_iterator *iter,
|
|||||||
/* Return the next matching CU or NULL if there are no more. */
|
/* Return the next matching CU or NULL if there are no more. */
|
||||||
|
|
||||||
static struct dwarf2_per_cu_data *
|
static struct dwarf2_per_cu_data *
|
||||||
dw2_symtab_iter_next (struct dw2_symtab_iterator *iter)
|
dw2_symtab_iter_next (struct dw2_symtab_iterator *iter,
|
||||||
|
mapped_index &index)
|
||||||
{
|
{
|
||||||
dwarf2_per_objfile *per_objfile = iter->per_objfile;
|
dwarf2_per_objfile *per_objfile = iter->per_objfile;
|
||||||
|
|
||||||
@ -2963,9 +2964,8 @@ dw2_symtab_iter_next (struct dw2_symtab_iterator *iter)
|
|||||||
Indices prior to version 7 don't record them,
|
Indices prior to version 7 don't record them,
|
||||||
and indices >= 7 may elide them for certain symbols
|
and indices >= 7 may elide them for certain symbols
|
||||||
(gold does this). */
|
(gold does this). */
|
||||||
int attrs_valid =
|
int attrs_valid = (index.version >= 7
|
||||||
(per_objfile->per_bfd->index_table->version >= 7
|
&& symbol_kind != GDB_INDEX_SYMBOL_KIND_NONE);
|
||||||
&& symbol_kind != GDB_INDEX_SYMBOL_KIND_NONE);
|
|
||||||
|
|
||||||
/* Don't crash on bad data. */
|
/* Don't crash on bad data. */
|
||||||
if (cu_index >= per_objfile->per_bfd->all_comp_units.size ())
|
if (cu_index >= per_objfile->per_bfd->all_comp_units.size ())
|
||||||
@ -3141,7 +3141,7 @@ dwarf2_gdb_index::expand_matching_symbols
|
|||||||
struct dwarf2_per_cu_data *per_cu;
|
struct dwarf2_per_cu_data *per_cu;
|
||||||
|
|
||||||
dw2_symtab_iter_init (&iter, per_objfile, block_kind, domain, namei);
|
dw2_symtab_iter_init (&iter, per_objfile, block_kind, domain, namei);
|
||||||
while ((per_cu = dw2_symtab_iter_next (&iter)) != NULL)
|
while ((per_cu = dw2_symtab_iter_next (&iter, index)) != NULL)
|
||||||
dw2_expand_symtabs_matching_one (per_cu, per_objfile, nullptr,
|
dw2_expand_symtabs_matching_one (per_cu, per_objfile, nullptr,
|
||||||
nullptr);
|
nullptr);
|
||||||
return true;
|
return true;
|
||||||
|
Reference in New Issue
Block a user