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'.  SeeDeriving 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.