X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=bfd%2Fhash.c;h=58fa5327beef67b7631b96d73c82df3a703595d4;hb=63ff5125e3094d30b4840116503dc24c414b6ff8;hp=9766eaf0cf233cf57e434ca79fccd96d3651122e;hpb=dc810e3900d47ab2eea86d50231ff2e70b596847;p=binutils-gdb.git diff --git a/bfd/hash.c b/bfd/hash.c index 9766eaf0cf2..58fa5327bee 100644 --- a/bfd/hash.c +++ b/bfd/hash.c @@ -1,5 +1,5 @@ /* hash.c -- hash table routines for BFD - Copyright 1993, 1994, 1995, 1997, 1999, 2001 + Copyright 1993, 1994, 1995, 1997, 1999, 2001, 2002, 2003 Free Software Foundation, Inc. Written by Steve Chamberlain @@ -67,7 +67,7 @@ SUBSECTION <> (if you know approximately how many entries you will need, the function <>, which takes a @var{size} argument, may be used). - <> returns <> if some sort of + <> returns <> if some sort of error occurs. @findex bfd_hash_newfunc @@ -96,24 +96,24 @@ SUBSECTION The function <> is used both to look up a string in the hash table and to create a new entry. - If the @var{create} argument is <>, <> + If the @var{create} argument is <>, <> will look up a string. If the string is found, it will returns a pointer to a <>. If the string is not found in the table <> will return <>. You should not modify any of the fields in the returns <>. - If the @var{create} argument is <>, the string will be + If the @var{create} argument is <>, the string will be entered into the hash table if it is not already there. Either way a pointer to a <> will be returned, either to the existing structure or to a newly created one. In this case, a <> return means that an error occurred. - If the @var{create} argument is <>, and a new entry is + If the @var{create} argument is <>, and a new entry is created, the @var{copy} argument is used to decide whether to copy the string onto the hash table objalloc or not. If - @var{copy} is passed as <>, you must be careful not to + @var{copy} is passed as <>, you must be careful not to deallocate or modify the string as long as the hash table exists. @@ -133,7 +133,7 @@ SUBSECTION generic pointer passed to <>. The function must return a <> value, which indicates whether to continue traversing the hash table. If the function returns - <>, <> will stop the traversal and + <>, <> will stop the traversal and return immediately. INODE @@ -299,7 +299,7 @@ SUBSUBSECTION /* Create a new hash table, given a number of entries. */ -boolean +bfd_boolean bfd_hash_table_init_n (table, newfunc, size) struct bfd_hash_table *table; struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, @@ -315,24 +315,24 @@ bfd_hash_table_init_n (table, newfunc, size) if (table->memory == NULL) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } table->table = ((struct bfd_hash_entry **) objalloc_alloc ((struct objalloc *) table->memory, alloc)); if (table->table == NULL) { bfd_set_error (bfd_error_no_memory); - return false; + return FALSE; } memset ((PTR) table->table, 0, alloc); table->size = size; table->newfunc = newfunc; - return true; + return TRUE; } /* Create a new hash table with the default number of entries. */ -boolean +bfd_boolean bfd_hash_table_init (table, newfunc) struct bfd_hash_table *table; struct bfd_hash_entry *(*newfunc) PARAMS ((struct bfd_hash_entry *, @@ -358,8 +358,8 @@ struct bfd_hash_entry * bfd_hash_lookup (table, string, create, copy) struct bfd_hash_table *table; const char *string; - boolean create; - boolean copy; + bfd_boolean create; + bfd_boolean copy; { register const unsigned char *s; register unsigned long hash; @@ -375,8 +375,8 @@ bfd_hash_lookup (table, string, create, copy) { hash += c + (c << 17); hash ^= hash >> 2; - ++len; } + len = (s - (const unsigned char *) string) - 1; hash += len + (len << 17); hash ^= hash >> 2; @@ -407,7 +407,7 @@ bfd_hash_lookup (table, string, create, copy) bfd_set_error (bfd_error_no_memory); return (struct bfd_hash_entry *) NULL; } - strcpy (new, string); + memcpy (new, string, len + 1); string = new; } hashp->string = string; @@ -446,7 +446,6 @@ bfd_hash_replace (table, old, nw) /* Base method for creating a new hash table entry. */ -/*ARGSUSED*/ struct bfd_hash_entry * bfd_hash_newfunc (entry, table, string) struct bfd_hash_entry *entry; @@ -479,7 +478,7 @@ bfd_hash_allocate (table, size) void bfd_hash_traverse (table, func, info) struct bfd_hash_table *table; - boolean (*func) PARAMS ((struct bfd_hash_entry *, PTR)); + bfd_boolean (*func) PARAMS ((struct bfd_hash_entry *, PTR)); PTR info; { unsigned int i; @@ -532,7 +531,7 @@ struct bfd_strtab_hash struct strtab_hash_entry *last; /* Whether to precede strings with a two byte length, as in the XCOFF .debug section. */ - boolean xcoff; + bfd_boolean xcoff; }; static struct bfd_hash_entry *strtab_hash_newfunc @@ -597,7 +596,7 @@ _bfd_stringtab_init () table->size = 0; table->first = NULL; table->last = NULL; - table->xcoff = false; + table->xcoff = FALSE; return table; } @@ -613,7 +612,7 @@ _bfd_xcoff_stringtab_init () ret = _bfd_stringtab_init (); if (ret != NULL) - ret->xcoff = true; + ret->xcoff = TRUE; return ret; } @@ -628,21 +627,21 @@ _bfd_stringtab_free (table) } /* Get the index of a string in a strtab, adding it if it is not - already present. If HASH is false, we don't really use the hash + already present. If HASH is FALSE, we don't really use the hash table, and we don't eliminate duplicate strings. */ bfd_size_type _bfd_stringtab_add (tab, str, hash, copy) struct bfd_strtab_hash *tab; const char *str; - boolean hash; - boolean copy; + bfd_boolean hash; + bfd_boolean copy; { register struct strtab_hash_entry *entry; if (hash) { - entry = strtab_hash_lookup (tab, str, true, copy); + entry = strtab_hash_lookup (tab, str, TRUE, copy); if (entry == NULL) return (bfd_size_type) -1; } @@ -699,12 +698,12 @@ _bfd_stringtab_size (tab) /* Write out a strtab. ABFD must already be at the right location in the file. */ -boolean +bfd_boolean _bfd_stringtab_emit (abfd, tab) register bfd *abfd; struct bfd_strtab_hash *tab; { - register boolean xcoff; + register bfd_boolean xcoff; register struct strtab_hash_entry *entry; xcoff = tab->xcoff; @@ -724,12 +723,12 @@ _bfd_stringtab_emit (abfd, tab) /* The output length includes the null byte. */ bfd_put_16 (abfd, (bfd_vma) len, buf); if (bfd_bwrite ((PTR) buf, (bfd_size_type) 2, abfd) != 2) - return false; + return FALSE; } if (bfd_bwrite ((PTR) str, (bfd_size_type) len, abfd) != len) - return false; + return FALSE; } - return true; + return TRUE; }