From: Tom Tromey <tromey@adacore.com>
To: gdb-patches@sourceware.org
Cc: Tom Tromey <tromey@adacore.com>
Subject: [PATCH 3/4] Move hash_entry and eq_entry into cooked_index::do_finalize
Date: Thu, 15 Dec 2022 12:07:58 -0700 [thread overview]
Message-ID: <20221215190759.2494095-4-tromey@adacore.com> (raw)
In-Reply-To: <20221215190759.2494095-1-tromey@adacore.com>
I was briefly confused by the hash_entry and eq_entry functions in the
cooked index. They are only needed in a single method, and that
method already has a couple of local lambdas for a different hash
table. So, it seemed cleaner to move these there as well.
---
gdb/dwarf2/cooked-index.c | 34 ++++++++++++++--------------------
1 file changed, 14 insertions(+), 20 deletions(-)
diff --git a/gdb/dwarf2/cooked-index.c b/gdb/dwarf2/cooked-index.c
index 0aa026c7779..f3688a351c9 100644
--- a/gdb/dwarf2/cooked-index.c
+++ b/gdb/dwarf2/cooked-index.c
@@ -26,26 +26,6 @@
#include "split-name.h"
#include <algorithm>
-/* Hash function for cooked_index_entry. */
-
-static hashval_t
-hash_entry (const void *e)
-{
- const cooked_index_entry *entry = (const cooked_index_entry *) e;
- return dwarf5_djb_hash (entry->canonical);
-}
-
-/* Equality function for cooked_index_entry. */
-
-static int
-eq_entry (const void *a, const void *b)
-{
- const cooked_index_entry *ae = (const cooked_index_entry *) a;
- const gdb::string_view *sv = (const gdb::string_view *) b;
- return (strlen (ae->canonical) == sv->length ()
- && strncasecmp (ae->canonical, sv->data (), sv->length ()) == 0);
-}
-
/* See cooked-index.h. */
const char *
@@ -191,6 +171,20 @@ cooked_index::do_finalize ()
htab_up seen_names (htab_create_alloc (10, hash_name_ptr, eq_name_ptr,
nullptr, xcalloc, xfree));
+ auto hash_entry = [] (const void *e)
+ {
+ const cooked_index_entry *entry = (const cooked_index_entry *) e;
+ return dwarf5_djb_hash (entry->canonical);
+ };
+
+ auto eq_entry = [] (const void *a, const void *b) -> int
+ {
+ const cooked_index_entry *ae = (const cooked_index_entry *) a;
+ const gdb::string_view *sv = (const gdb::string_view *) b;
+ return (strlen (ae->canonical) == sv->length ()
+ && strncasecmp (ae->canonical, sv->data (), sv->length ()) == 0);
+ };
+
htab_up gnat_entries (htab_create_alloc (10, hash_entry, eq_entry,
nullptr, xcalloc, xfree));
--
2.34.3
next prev parent reply other threads:[~2022-12-15 19:08 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-15 19:07 [PATCH 0/4] Fix regression in new DWARF reader Tom Tromey
2022-12-15 19:07 ` [PATCH 1/4] Avoid submitting empty tasks in parallel_for_each Tom Tromey
2023-01-07 11:19 ` Joel Brobecker
2023-01-09 16:20 ` Tom Tromey
2022-12-15 19:07 ` [PATCH 2/4] Don't erase empty indices in DWARF reader Tom Tromey
2022-12-19 14:51 ` Andrew Burgess
2022-12-19 17:09 ` Tom Tromey
2023-01-07 11:24 ` Joel Brobecker
2023-01-09 16:45 ` Tom Tromey
2023-01-09 18:18 ` Tom Tromey
2023-01-10 10:07 ` Andrew Burgess
2023-01-10 18:24 ` Tom Tromey
2022-12-15 19:07 ` Tom Tromey [this message]
2023-01-07 11:26 ` [PATCH 3/4] Move hash_entry and eq_entry into cooked_index::do_finalize Joel Brobecker
2022-12-15 19:07 ` [PATCH 4/4] Fix parameter-less template regression in new DWARF reader Tom Tromey
2023-01-07 11:37 ` Joel Brobecker
2023-01-07 11:45 ` Joel Brobecker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221215190759.2494095-4-tromey@adacore.com \
--to=tromey@adacore.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).