X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fhash.c;h=2faeba9c091db72335d5fd6dceed1f1302f186b0;hb=436d9e46434ecc4ee860265c8f7f8c11bcb9904f;hp=0f129fb3fa1938f4038d80ff960a1fbc5fd192df;hpb=30727aa6d12fb866494020c0b62ab265a2bdcdfe;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/hash.c b/gas/hash.c index 0f129fb3fa..2faeba9c09 100644 --- a/gas/hash.c +++ b/gas/hash.c @@ -1,5 +1,6 @@ /* hash.c -- gas hash table code - Copyright (C) 1987, 90, 91, 92, 93, 94, 95, 96, 98, 1999 + Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, + 2000, 2001, 2002 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. @@ -22,13 +23,14 @@ /* This version of the hash table code is a wholescale replacement of the old hash table code, which was fairly bad. This is based on the hash table code in BFD, but optimized slightly for the - asssembler. The assembler does not need to derive structures that + assembler. The assembler does not need to derive structures that are stored in the hash table. Instead, it always stores a pointer. The assembler uses the hash table mostly to store symbols, and we don't need to confuse the symbol structure with a hash table structure. */ #include "as.h" +#include "safe-ctype.h" #include "obstack.h" /* The default number of entries to use when creating a hash table. */ @@ -37,8 +39,7 @@ /* An entry in a hash table. */ -struct hash_entry -{ +struct hash_entry { /* Next entry for this hash code. */ struct hash_entry *next; /* String being hashed. */ @@ -52,8 +53,7 @@ struct hash_entry /* A hash table. */ -struct hash_control -{ +struct hash_control { /* The hash array. */ struct hash_entry **table; /* The number of slots in the hash table. */ @@ -99,7 +99,7 @@ hash_new () ret->deletions = 0; #endif - return ret; + return ret; } /* Delete a hash table, freeing all allocated memory. */ @@ -222,7 +222,7 @@ hash_insert (table, key, value) ++table->insertions; #endif - p = obstack_alloc (&table->memory, sizeof *p); + p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p)); p->string = key; p->hash = hash; p->data = value; @@ -262,7 +262,7 @@ hash_jam (table, key, value) ++table->insertions; #endif - p = obstack_alloc (&table->memory, sizeof *p); + p = (struct hash_entry *) obstack_alloc (&table->memory, sizeof (*p)); p->string = key; p->hash = hash; p->data = value; @@ -415,14 +415,23 @@ hash_print_statistics (f, name, table) /* This test program is left over from the old hash table code. */ -#define TABLES (6) /* number of hash tables to maintain */ - /* (at once) in any testing */ -#define STATBUFSIZE (12) /* we can have 12 statistics */ +/* Number of hash tables to maintain (at once) in any testing. */ +#define TABLES (6) + +/* We can have 12 statistics. */ +#define STATBUFSIZE (12) -int statbuf[STATBUFSIZE]; /* display statistics here */ -char answer[100]; /* human farts here */ -char *hashtable[TABLES]; /* we test many hash tables at once */ -char *h; /* points to curent hash_control */ +/* Display statistics here. */ +int statbuf[STATBUFSIZE]; + +/* Human farts here. */ +char answer[100]; + +/* We test many hash tables at once. */ +char *hashtable[TABLES]; + +/* Points to current hash_control. */ +char *h; char **pp; char *p; char *name; @@ -430,8 +439,9 @@ char *value; int size; int used; char command; -int number; /* number 0:TABLES-1 of current hashed */ - /* symbol table */ + +/* Number 0:TABLES-1 of current hashed symbol table. */ +int number; int main () @@ -449,8 +459,7 @@ main () printf ("hash_test command: "); gets (answer); command = answer[0]; - if (isupper (command)) - command = tolower (command); /* ecch! */ + command = TOLOWER (command); /* Ecch! */ switch (command) { case '#': @@ -460,8 +469,8 @@ main () case '?': for (pp = hashtable; pp < hashtable + TABLES; pp++) { - printf ("address of hash table #%d control block is %xx\n" - ,pp - hashtable, *pp); + printf ("address of hash table #%d control block is %xx\n", + pp - hashtable, *pp); } break; case 'a': @@ -537,19 +546,9 @@ char * what (description) char *description; { - char *retval; - char *malloc (); - printf (" %s : ", description); gets (answer); - /* will one day clean up answer here */ - retval = malloc (strlen (answer) + 1); - if (!retval) - { - error ("room"); - } - (void) strcpy (retval, answer); - return (retval); + return xstrdup (answer); } void @@ -561,7 +560,6 @@ destroy (string, value) free (value); } - void applicatee (string, value) char *string; @@ -570,11 +568,12 @@ applicatee (string, value) printf ("%.20s-%.20s\n", string, value); } +/* Determine number: what hash table to use. + Also determine h: points to hash_control. */ + void -whattable () /* determine number: what hash table to use */ - /* also determine h: points to hash_control */ +whattable () { - for (;;) { printf (" what hash table (%d:%d) ? ", 0, TABLES - 1); @@ -596,6 +595,4 @@ whattable () /* determine number: what hash table to use */ } } -#endif /* #ifdef TEST */ - -/* end of hash.c */ +#endif /* TEST */