gdbsupport: add gdb::string_view_hash

Add the string_view_hash type, which will be useful to be able to use
gdb::string_view as std::unordered_map keys.

Use it in gdb/symtab.c, to exercise it.

Change-Id: Id69a466ab19a9f6620b5df8a2dd29b5cddd94c00
Approved-By: Andrew Burgess <aburgess@redhat.com>
This commit is contained in:
Simon Marchi
2022-10-20 13:05:19 -04:00
committed by Simon Marchi
parent 72127b193c
commit 1a8605a8c7
2 changed files with 18 additions and 1 deletions

View File

@@ -209,4 +209,21 @@ fast_hash (const void *ptr, size_t len, unsigned int start_value = 0)
#endif
}
namespace gdb
{
/* Hash type for gdb::string_view.
Even after we switch to C++17 and dump our string_view implementation, we
might want to keep this hash implementation if it's faster than std::hash
for std::string_view. */
struct string_view_hash
{
std::size_t operator() (gdb::string_view view) const
{ return fast_hash (view.data (), view.length ()); }
};
} /* namespace gdb */
#endif /* COMMON_COMMON_UTILS_H */