To create a hash table, create an instance of a struct
bfd_hash_table
(defined in bfd.h
) and call
bfd_hash_table_init
(if you know approximately how many
entries you will need, the function bfd_hash_table_init_n
,
which takes a size argument, may be used).
bfd_hash_table_init
returns FALSE
if some sort of
error occurs.
The function bfd_hash_table_init
take as an argument a
function to use to create new entries. For a basic hash
table, use the function bfd_hash_newfunc
. See Deriving a New Hash Table Type, for why you would want to use a
different value for this argument.
bfd_hash_table_init
will create an objalloc which will be
used to allocate new entries. You may allocate memory on this
objalloc using bfd_hash_allocate
.
Use bfd_hash_table_free
to free up all the memory that has
been allocated for a hash table. This will not free up the
struct bfd_hash_table
itself, which you must provide.
Use bfd_hash_set_default_size
to set the default size of
hash table to use.