* [PATCH] Simplify checks of cooked_index
@ 2023-02-01 18:45 Tom Tromey
2023-02-01 20:54 ` Simon Marchi
0 siblings, 1 reply; 2+ messages in thread
From: Tom Tromey @ 2023-02-01 18:45 UTC (permalink / raw)
To: gdb-patches; +Cc: Tom Tromey
This changes the cooked_index_functions to avoid an extra null check
now that checked_static_cast allows a null argument.
---
gdb/dwarf2/read.c | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index ee4e7c1530a..bbbf8ad1816 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -18634,11 +18634,11 @@ dwarf2_per_cu_data *
cooked_index_functions::find_per_cu (dwarf2_per_bfd *per_bfd,
CORE_ADDR adjusted_pc)
{
- if (per_bfd->index_table == nullptr)
- return nullptr;
cooked_index *table
= (gdb::checked_static_cast<cooked_index *>
(per_bfd->index_table.get ()));
+ if (table == nullptr)
+ return nullptr;
return table->lookup (adjusted_pc);
}
@@ -18650,13 +18650,13 @@ cooked_index_functions::find_compunit_symtab_by_address
return nullptr;
dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
- if (per_objfile->per_bfd->index_table == nullptr)
- return nullptr;
-
- CORE_ADDR baseaddr = objfile->data_section_offset ();
cooked_index *table
= (gdb::checked_static_cast<cooked_index *>
(per_objfile->per_bfd->index_table.get ()));
+ if (table == nullptr)
+ return nullptr;
+
+ CORE_ADDR baseaddr = objfile->data_section_offset ();
dwarf2_per_cu_data *per_cu = table->lookup (address - baseaddr);
if (per_cu == nullptr)
return nullptr;
@@ -18673,8 +18673,12 @@ cooked_index_functions::expand_matching_symbols
symbol_compare_ftype *ordered_compare)
{
dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
- if (per_objfile->per_bfd->index_table == nullptr)
+ cooked_index *table
+ = (gdb::checked_static_cast<cooked_index *>
+ (per_objfile->per_bfd->index_table.get ()));
+ if (table == nullptr)
return;
+
const block_search_flags search_flags = (global
? SEARCH_GLOBAL_BLOCK
: SEARCH_STATIC_BLOCK);
@@ -18682,9 +18686,6 @@ cooked_index_functions::expand_matching_symbols
symbol_name_matcher_ftype *name_match
= lang->get_symbol_name_matcher (lookup_name);
- cooked_index *table
- = (gdb::checked_static_cast<cooked_index *>
- (per_objfile->per_bfd->index_table.get ()));
for (const cooked_index_entry *entry : table->all_entries ())
{
QUIT;
@@ -18713,12 +18714,13 @@ cooked_index_functions::expand_symtabs_matching
enum search_domain kind)
{
dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
- if (per_objfile->per_bfd->index_table == nullptr)
- return true;
cooked_index *table
= (gdb::checked_static_cast<cooked_index *>
(per_objfile->per_bfd->index_table.get ()));
+ if (table == nullptr)
+ return true;
+
table->wait ();
dw_expand_symtabs_matching_file_matcher (per_objfile, file_matcher);
--
2.39.1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-02-01 20:54 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-01 18:45 [PATCH] Simplify checks of cooked_index Tom Tromey
2023-02-01 20:54 ` Simon Marchi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).