mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-23 20:19:49 +00:00
* bfd-in.h (bfd_hash_insert): Declare.
* bfd-in2.h: Regenerate. * hash.c (bfd_hash_insert): New function. Split out from.. (bfd_hash_lookup): ..here. * merge.c (sec_merge_hash_lookup): Use bfd_hash_insert.
This commit is contained in:
parent
4dcdce139f
commit
a69898aad0
@ -1,3 +1,12 @@
|
||||
2007-09-19 Alan Modra <amodra@bigpond.net.au>
|
||||
Doug Kwan <dougkwan@google.com>
|
||||
|
||||
* bfd-in.h (bfd_hash_insert): Declare.
|
||||
* bfd-in2.h: Regenerate.
|
||||
* hash.c (bfd_hash_insert): New function. Split out from..
|
||||
(bfd_hash_lookup): ..here.
|
||||
* merge.c (sec_merge_hash_lookup): Use bfd_hash_insert.
|
||||
|
||||
2007-09-18 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* elf.c (bfd_section_from_shdr): Check bfd_alloc return.
|
||||
|
@ -464,6 +464,10 @@ extern struct bfd_hash_entry *bfd_hash_lookup
|
||||
(struct bfd_hash_table *, const char *, bfd_boolean create,
|
||||
bfd_boolean copy);
|
||||
|
||||
/* Insert an entry in a hash table. */
|
||||
extern struct bfd_hash_entry *bfd_hash_insert
|
||||
(struct bfd_hash_table *, const char *, unsigned long);
|
||||
|
||||
/* Replace an entry in a hash table. */
|
||||
extern void bfd_hash_replace
|
||||
(struct bfd_hash_table *, struct bfd_hash_entry *old,
|
||||
|
@ -471,6 +471,10 @@ extern struct bfd_hash_entry *bfd_hash_lookup
|
||||
(struct bfd_hash_table *, const char *, bfd_boolean create,
|
||||
bfd_boolean copy);
|
||||
|
||||
/* Insert an entry in a hash table. */
|
||||
extern struct bfd_hash_entry *bfd_hash_insert
|
||||
(struct bfd_hash_table *, const char *, unsigned long);
|
||||
|
||||
/* Replace an entry in a hash table. */
|
||||
extern void bfd_hash_replace
|
||||
(struct bfd_hash_table *, struct bfd_hash_entry *old,
|
||||
|
27
bfd/hash.c
27
bfd/hash.c
@ -451,9 +451,6 @@ bfd_hash_lookup (struct bfd_hash_table *table,
|
||||
if (! create)
|
||||
return NULL;
|
||||
|
||||
hashp = (*table->newfunc) (NULL, table, string);
|
||||
if (hashp == NULL)
|
||||
return NULL;
|
||||
if (copy)
|
||||
{
|
||||
char *new;
|
||||
@ -467,8 +464,26 @@ bfd_hash_lookup (struct bfd_hash_table *table,
|
||||
memcpy (new, string, len + 1);
|
||||
string = new;
|
||||
}
|
||||
|
||||
return bfd_hash_insert (table, string, hash);
|
||||
}
|
||||
|
||||
/* Insert an entry in a hash table. */
|
||||
|
||||
struct bfd_hash_entry *
|
||||
bfd_hash_insert (struct bfd_hash_table *table,
|
||||
const char *string,
|
||||
unsigned long hash)
|
||||
{
|
||||
struct bfd_hash_entry *hashp;
|
||||
unsigned int index;
|
||||
|
||||
hashp = (*table->newfunc) (NULL, table, string);
|
||||
if (hashp == NULL)
|
||||
return NULL;
|
||||
hashp->string = string;
|
||||
hashp->hash = hash;
|
||||
index = hash % table->size;
|
||||
hashp->next = table->table[index];
|
||||
table->table[index] = hashp;
|
||||
table->count++;
|
||||
@ -490,6 +505,11 @@ bfd_hash_lookup (struct bfd_hash_table *table,
|
||||
|
||||
newtable = ((struct bfd_hash_entry **)
|
||||
objalloc_alloc ((struct objalloc *) table->memory, alloc));
|
||||
if (newtable == NULL)
|
||||
{
|
||||
table->frozen = 1;
|
||||
return hashp;
|
||||
}
|
||||
memset ((PTR) newtable, 0, alloc);
|
||||
|
||||
for (hi = 0; hi < table->size; hi ++)
|
||||
@ -497,7 +517,6 @@ bfd_hash_lookup (struct bfd_hash_table *table,
|
||||
{
|
||||
struct bfd_hash_entry *chain = table->table[hi];
|
||||
struct bfd_hash_entry *chain_end = chain;
|
||||
int index;
|
||||
|
||||
while (chain_end->next && chain_end->next->hash == chain->hash)
|
||||
chain_end = chain_end->next;
|
||||
|
@ -220,16 +220,11 @@ sec_merge_hash_lookup (struct sec_merge_hash *table, const char *string,
|
||||
return NULL;
|
||||
|
||||
hashp = ((struct sec_merge_hash_entry *)
|
||||
sec_merge_hash_newfunc (NULL, &table->table, string));
|
||||
bfd_hash_insert (&table->table, string, hash));
|
||||
if (hashp == NULL)
|
||||
return NULL;
|
||||
hashp->root.string = string;
|
||||
hashp->root.hash = hash;
|
||||
hashp->len = len;
|
||||
hashp->alignment = alignment;
|
||||
hashp->root.next = table->table.table[index];
|
||||
table->table.table[index] = (struct bfd_hash_entry *) hashp;
|
||||
|
||||
return hashp;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user