diff options
author | Daniel Jacobowitz <dan@debian.org> | 2001-10-12 19:07:07 +0000 |
---|---|---|
committer | Daniel Jacobowitz <dan@debian.org> | 2001-10-12 19:07:07 +0000 |
commit | 7086476cc8e04d755ce608b464142199a8f59523 (patch) | |
tree | 8c6522d7b37455dce2888bbd5c8d9e0bb8da717a /gdb/minsyms.c | |
parent | e04dd3b2c4416acb819f7d632b49486e010a9562 (diff) | |
download | gdb-7086476cc8e04d755ce608b464142199a8f59523.tar.gz |
* minsyms.c (msymbol_hash): Use better hash function.
(msymbol_hash_iw): Likewise. Terminate loop at '(' properly.
* objfiles.h: Increase MINIMAL_SYMBOL_HASH_SIZE to match modern
binaries.
Diffstat (limited to 'gdb/minsyms.c')
-rw-r--r-- | gdb/minsyms.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gdb/minsyms.c b/gdb/minsyms.c index 94817474318..b20074b273d 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -96,8 +96,10 @@ msymbol_hash_iw (const char *string) while (isspace (*string)) ++string; if (*string && *string != '(') - hash = (31 * hash) + *string; - ++string; + { + hash = hash * 67 + *string - 113; + ++string; + } } return hash % MINIMAL_SYMBOL_HASH_SIZE; } @@ -109,7 +111,7 @@ msymbol_hash (const char *string) { unsigned int hash = 0; for (; *string; ++string) - hash = (31 * hash) + *string; + hash = hash * 67 + *string - 113; return hash % MINIMAL_SYMBOL_HASH_SIZE; } |