From 59d7bcaf18f0f9cff495e7a1a9e08dde859fb1f2 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Wed, 6 Apr 2011 19:50:05 +0000 Subject: [PATCH] gdb/ Code cleanup. * dictionary.c (dict_hash): Use SYMBOL_HASH_NEXT. * dwarf2read.c (mapped_index_string_hash): Refer to SYMBOL_HASH_NEXT in the function comment, a new note on values compatibility. * minsyms.c (msymbol_hash_iw, msymbol_hash): Use SYMBOL_HASH_NEXT. * symtab.h (SYMBOL_HASH_NEXT): New. --- gdb/ChangeLog | 9 +++++++++ gdb/dictionary.c | 2 +- gdb/dwarf2read.c | 10 +++++----- gdb/minsyms.c | 4 ++-- gdb/symtab.h | 6 ++++++ 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 031e53a505..349e47e155 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2011-04-06 Jan Kratochvil + + Code cleanup. + * dictionary.c (dict_hash): Use SYMBOL_HASH_NEXT. + * dwarf2read.c (mapped_index_string_hash): Refer to SYMBOL_HASH_NEXT + in the function comment, a new note on values compatibility. + * minsyms.c (msymbol_hash_iw, msymbol_hash): Use SYMBOL_HASH_NEXT. + * symtab.h (SYMBOL_HASH_NEXT): New. + 2011-04-06 Thiago Jung Bauermann * ppc-linux-nat.c (check_condition): Add len output parameter. diff --git a/gdb/dictionary.c b/gdb/dictionary.c index 29816921d9..8142d291be 100644 --- a/gdb/dictionary.c +++ b/gdb/dictionary.c @@ -826,7 +826,7 @@ dict_hash (const char *string0) } /* FALL THROUGH */ default: - hash = hash * 67 + *string - 113; + hash = SYMBOL_HASH_NEXT (hash, *string); string += 1; break; } diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 591e4740af..5086733e7c 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -1962,11 +1962,11 @@ create_addrmap_from_index (struct objfile *objfile, struct mapped_index *index) do_cleanups (cleanup); } -/* The hash function for strings in the mapped index. This is the - same as the hashtab.c hash function, but we keep a separate copy to - maintain control over the implementation. This is necessary - because the hash function is tied to the format of the mapped index - file. */ +/* The hash function for strings in the mapped index. This is the same as + SYMBOL_HASH_NEXT, but we keep a separate copy to maintain control over the + implementation. This is necessary because the hash function is tied to the + format of the mapped index file. The hash values do not have to match with + SYMBOL_HASH_NEXT. */ static hashval_t mapped_index_string_hash (const void *p) diff --git a/gdb/minsyms.c b/gdb/minsyms.c index b054e3ff98..a2c5ebc0b1 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -91,7 +91,7 @@ msymbol_hash_iw (const char *string) ++string; if (*string && *string != '(') { - hash = hash * 67 + *string - 113; + hash = SYMBOL_HASH_NEXT (hash, *string); ++string; } } @@ -106,7 +106,7 @@ msymbol_hash (const char *string) unsigned int hash = 0; for (; *string; ++string) - hash = hash * 67 + *string - 113; + hash = SYMBOL_HASH_NEXT (hash, *string); return hash; } diff --git a/gdb/symtab.h b/gdb/symtab.h index 59bbe2450f..4913e6c0d8 100644 --- a/gdb/symtab.h +++ b/gdb/symtab.h @@ -1004,6 +1004,12 @@ extern unsigned int msymbol_hash_iw (const char *); extern unsigned int msymbol_hash (const char *); +/* Compute the next hash value from previous HASH and the character C. This + is only a GDB in-memory computed value with no external files compatibility + requirements. */ + +#define SYMBOL_HASH_NEXT(hash, c) ((hash) * 67 + (c) - 113) + extern struct objfile * msymbol_objfile (struct minimal_symbol *sym); extern void