* minsyms.c (msymbol_hash): Use better hash function.
authorDaniel Jacobowitz <drow@false.org>
Fri, 12 Oct 2001 19:07:07 +0000 (19:07 +0000)
committerDaniel Jacobowitz <drow@false.org>
Fri, 12 Oct 2001 19:07:07 +0000 (19:07 +0000)
        (msymbol_hash_iw): Likewise.  Terminate loop at '(' properly.

        * objfiles.h: Increase MINIMAL_SYMBOL_HASH_SIZE to match modern
        binaries.

gdb/ChangeLog
gdb/minsyms.c
gdb/objfiles.h

index 922d8e2..5675302 100644 (file)
@@ -1,5 +1,13 @@
 2001-10-12  Daniel Jacobowitz  <drow@mvista.com>
 
+       * 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.
+
+2001-10-12  Daniel Jacobowitz  <drow@mvista.com>
+
        * printcmd.c (print_frame_args):  Move symbol iteration explicitly
        inside the func != NULL block.
 
index 9481747..b20074b 100644 (file)
@@ -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;
 }
 
index d3f669e..992ae71 100644 (file)
@@ -202,7 +202,7 @@ extern void print_objfile_statistics (void);
 extern void print_symbol_bcache_statistics (void);
 
 /* Number of entries in the minimal symbol hash table.  */
-#define MINIMAL_SYMBOL_HASH_SIZE 349
+#define MINIMAL_SYMBOL_HASH_SIZE 2039
 
 /* Master structure for keeping track of each file from which
    gdb reads symbols.  There are several ways these get allocated: 1.