From: Tom Tromey Date: Mon, 30 Jan 2023 15:29:36 +0000 (-0500) Subject: Make addrmap const-correct in cooked index X-Git-Tag: binutils-2_41~2020 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=70ca3a6bc9538d98a602325f4e84d18d0be491d1;p=thirdparty%2Fbinutils-gdb.git Make addrmap const-correct in cooked index After the cooked index is created, the addrmaps should be const. Change-Id: I8234520ab346ced40a8dd6e478ba21fc438c2ba2 --- diff --git a/gdb/dwarf2/cooked-index.c b/gdb/dwarf2/cooked-index.c index 1a568e6aae7..646bc76575c 100644 --- a/gdb/dwarf2/cooked-index.c +++ b/gdb/dwarf2/cooked-index.c @@ -401,10 +401,10 @@ cooked_index_vector::lookup (CORE_ADDR addr) /* See cooked-index.h. */ -std::vector -cooked_index_vector::get_addrmaps () +std::vector +cooked_index_vector::get_addrmaps () const { - std::vector result; + std::vector result; for (const auto &index : m_vector) result.push_back (index->m_addrmap); return result; diff --git a/gdb/dwarf2/cooked-index.h b/gdb/dwarf2/cooked-index.h index 7a8c18975e5..7299a4f77b4 100644 --- a/gdb/dwarf2/cooked-index.h +++ b/gdb/dwarf2/cooked-index.h @@ -360,7 +360,7 @@ public: /* Return a new vector of all the addrmaps used by all the indexes held by this object. */ - std::vector get_addrmaps (); + std::vector get_addrmaps () const; /* Return the entry that is believed to represent the program's "main". This will return NULL if no such entry is available. */ diff --git a/gdb/dwarf2/index-write.c b/gdb/dwarf2/index-write.c index 7b1b2d6520c..82cd3a8636d 100644 --- a/gdb/dwarf2/index-write.c +++ b/gdb/dwarf2/index-write.c @@ -433,7 +433,8 @@ write_hash_table (mapped_symtab *symtab, data_buf &output, data_buf &cpool) } } -typedef std::unordered_map cu_index_map; +using cu_index_map + = std::unordered_map; /* Helper struct for building the address table. */ struct addrmap_index_data @@ -446,7 +447,7 @@ struct addrmap_index_data data_buf &addr_vec; cu_index_map &cu_index_htab; - int operator() (CORE_ADDR start_addr, void *obj); + int operator() (CORE_ADDR start_addr, const void *obj); /* True if the previous_* fields are valid. We can't write an entry until we see the next entry (since it is only then @@ -472,9 +473,10 @@ add_address_entry (data_buf &addr_vec, /* Worker function for traversing an addrmap to build the address table. */ int -addrmap_index_data::operator() (CORE_ADDR start_addr, void *obj) +addrmap_index_data::operator() (CORE_ADDR start_addr, const void *obj) { - dwarf2_per_cu_data *per_cu = static_cast (obj); + const dwarf2_per_cu_data *per_cu + = static_cast (obj); if (previous_valid) add_address_entry (addr_vec, @@ -500,7 +502,7 @@ addrmap_index_data::operator() (CORE_ADDR start_addr, void *obj) in the index file. */ static void -write_address_map (struct addrmap *addrmap, data_buf &addr_vec, +write_address_map (const addrmap *addrmap, data_buf &addr_vec, cu_index_map &cu_index_htab) { struct addrmap_index_data addrmap_index_data (addr_vec, cu_index_htab);