bfd: Creating and Freeing a Hash Table
2.18.1 Creating and freeing a hash table
----------------------------------------
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'. 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.