projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert 'Remove unused struct serial::name field'
[deliverable/binutils-gdb.git]
/
bfd
/
hash.c
diff --git
a/bfd/hash.c
b/bfd/hash.c
index 1de2c2a85b07a65323ff744440631b184361fc23..8dd130aaff0b95dbe2de9f2484205e933e765d62 100644
(file)
--- a/
bfd/hash.c
+++ b/
bfd/hash.c
@@
-1,6
+1,5
@@
/* hash.c -- hash table routines for BFD
/* hash.c -- hash table routines for BFD
- Copyright 1993, 1994, 1995, 1997, 1999, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1993-2020 Free Software Foundation, Inc.
Written by Steve Chamberlain <sac@cygnus.com>
This file is part of BFD, the Binary File Descriptor library.
Written by Steve Chamberlain <sac@cygnus.com>
This file is part of BFD, the Binary File Descriptor library.
@@
-232,8
+231,8
@@
EXAMPLE
.struct bfd_hash_entry *
.@var{function_name} (struct bfd_hash_entry *entry,
.struct bfd_hash_entry *
.@var{function_name} (struct bfd_hash_entry *entry,
-.
struct bfd_hash_table *table,
-.
const char *string)
+. struct bfd_hash_table *table,
+. const char *string)
.{
. struct @var{entry_type} *ret = (@var{entry_type} *) entry;
.
.{
. struct @var{entry_type} *ret = (@var{entry_type} *) entry;
.
@@
-243,12
+242,12
@@
EXAMPLE
. {
. ret = bfd_hash_allocate (table, sizeof (* ret));
. if (ret == NULL)
. {
. ret = bfd_hash_allocate (table, sizeof (* ret));
. if (ret == NULL)
-.
return NULL;
+. return NULL;
. }
.
. {* Call the allocation method of the base class. *}
. ret = ((@var{entry_type} *)
. }
.
. {* Call the allocation method of the base class. *}
. ret = ((@var{entry_type} *)
-. @var{base_newfunc} ((struct bfd_hash_entry *) ret, table, string));
+.
@var{base_newfunc} ((struct bfd_hash_entry *) ret, table, string));
.
. {* Initialize the local fields here. *}
.
.
. {* Initialize the local fields here. *}
.
@@
-393,6
+392,7
@@
bfd_hash_table_init_n (struct bfd_hash_table *table,
objalloc_alloc ((struct objalloc *) table->memory, alloc);
if (table->table == NULL)
{
objalloc_alloc ((struct objalloc *) table->memory, alloc);
if (table->table == NULL)
{
+ bfd_hash_table_free (table);
bfd_set_error (bfd_error_no_memory);
return FALSE;
}
bfd_set_error (bfd_error_no_memory);
return FALSE;
}
@@
-435,6
+435,7
@@
bfd_hash_hash (const char *string, unsigned int *lenp)
unsigned int len;
unsigned int c;
unsigned int len;
unsigned int c;
+ BFD_ASSERT (string != NULL);
hash = 0;
len = 0;
s = (const unsigned char *) string;
hash = 0;
len = 0;
s = (const unsigned char *) string;
@@
-483,7
+484,7
@@
bfd_hash_lookup (struct bfd_hash_table *table,
char *new_string;
new_string = (char *) objalloc_alloc ((struct objalloc *) table->memory,
char *new_string;
new_string = (char *) objalloc_alloc ((struct objalloc *) table->memory,
-
len + 1);
+ len + 1);
if (!new_string)
{
bfd_set_error (bfd_error_no_memory);
if (!new_string)
{
bfd_set_error (bfd_error_no_memory);
@@
-538,7
+539,7
@@
bfd_hash_insert (struct bfd_hash_table *table,
table->frozen = 1;
return hashp;
}
table->frozen = 1;
return hashp;
}
- memset (
(PTR)
newtable, 0, alloc);
+ memset (newtable, 0, alloc);
for (hi = 0; hi < table->size; hi ++)
while (table->table[hi])
for (hi = 0; hi < table->size; hi ++)
while (table->table[hi])
@@
-634,7
+635,7
@@
bfd_hash_newfunc (struct bfd_hash_entry *entry,
{
if (entry == NULL)
entry = (struct bfd_hash_entry *) bfd_hash_allocate (table,
{
if (entry == NULL)
entry = (struct bfd_hash_entry *) bfd_hash_allocate (table,
-
sizeof (* entry));
+ sizeof (* entry));
return entry;
}
return entry;
}
@@
-731,7
+732,7
@@
strtab_hash_newfunc (struct bfd_hash_entry *entry,
subclass. */
if (ret == NULL)
ret = (struct strtab_hash_entry *) bfd_hash_allocate (table,
subclass. */
if (ret == NULL)
ret = (struct strtab_hash_entry *) bfd_hash_allocate (table,
-
sizeof (* ret));
+ sizeof (* ret));
if (ret == NULL)
return NULL;
if (ret == NULL)
return NULL;
@@
-808,7
+809,8
@@
_bfd_stringtab_free (struct bfd_strtab_hash *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
/* 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
- table, and we don't eliminate duplicate strings. */
+ table, and we don't eliminate duplicate strings. If COPY is true
+ then store a copy of STR if creating a new entry. */
bfd_size_type
_bfd_stringtab_add (struct bfd_strtab_hash *tab,
bfd_size_type
_bfd_stringtab_add (struct bfd_strtab_hash *tab,
@@
-827,18
+829,20
@@
_bfd_stringtab_add (struct bfd_strtab_hash *tab,
else
{
entry = (struct strtab_hash_entry *) bfd_hash_allocate (&tab->table,
else
{
entry = (struct strtab_hash_entry *) bfd_hash_allocate (&tab->table,
-
sizeof (* entry));
+ sizeof (* entry));
if (entry == NULL)
return (bfd_size_type) -1;
if (! copy)
entry->root.string = str;
else
{
if (entry == NULL)
return (bfd_size_type) -1;
if (! copy)
entry->root.string = str;
else
{
+ size_t len = strlen (str) + 1;
char *n;
char *n;
- n = (char *) bfd_hash_allocate (&tab->table,
strlen (str) + 1
);
+ n = (char *) bfd_hash_allocate (&tab->table,
len
);
if (n == NULL)
return (bfd_size_type) -1;
if (n == NULL)
return (bfd_size_type) -1;
+ memcpy (n, str, len);
entry->root.string = n;
}
entry->index = (bfd_size_type) -1;
entry->root.string = n;
}
entry->index = (bfd_size_type) -1;
This page took
0.025045 seconds
and
4
git commands to generate.