[binutils-gdb] Populate seen_names hash in cooked_index_shard::do_finalize

Tom Tromey tromey@sourceware.org
Mon Mar 27 14:19:12 GMT 2023


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=b6c55de76b1a30debca52f52c479ca3b8e3fee53

commit b6c55de76b1a30debca52f52c479ca3b8e3fee53
Author: Tom Tromey <tromey@adacore.com>
Date:   Fri Feb 10 07:18:15 2023 -0700

    Populate seen_names hash in cooked_index_shard::do_finalize
    
    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.

Diff:
---
 gdb/dwarf2/cooked-index.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gdb/dwarf2/cooked-index.c b/gdb/dwarf2/cooked-index.c
index 3a907690906..900f13c7de9 100644
--- a/gdb/dwarf2/cooked-index.c
+++ b/gdb/dwarf2/cooked-index.c
@@ -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
 	    {


More information about the Gdb-cvs mailing list