Populate seen_names hash in cooked_index_shard::do_finalize
authorTom Tromey <tromey@adacore.com>
Fri, 10 Feb 2023 14:18:15 +0000 (07:18 -0700)
committerTom Tromey <tromey@adacore.com>
Mon, 27 Mar 2023 14:18:55 +0000 (08:18 -0600)
Hannes pointed out that cooked_index_shard::do_finalize never
populates the seen_names hash table.  This patch adds the necessary
store.  This reduces memory use a little for "gdb gdb":

(before) Space used: 28909568 (+0 for this command)
(after)  Space used: 28884992 (+0 for this command)

What this means, btw, is that in gdb there are not many symbols that
are both mentioned in many CUs and that also require name
canonicalization.  It's possible this would differ in other programs.

gdb/dwarf2/cooked-index.c

index 3a9076909068d0661d0f6fab0f9999f35913c81c..900f13c7de9cda426b8397dd034a6e7c42870fee 100644 (file)
@@ -378,6 +378,7 @@ cooked_index_shard::do_finalize ()
                  entry->canonical = canon_name.get ();
                  m_names.push_back (std::move (canon_name));
                }
+             *slot = entry;
            }
          else
            {