Skip to content
  • Jason Ekstrand's avatar
    util/hash_set: Rework the API to know about hashing · 153b8b35
    Jason Ekstrand authored
    Previously, the set API required the user to do all of the hashing of keys
    as it passed them in.  Since the hashing function is intrinsically tied to
    the comparison function, it makes sense for the hash set to know about
    it.  Also, it makes for a somewhat clumsy API as the user is constantly
    calling hashing functions many of which have long names.  This is
    especially bad when the standard call looks something like
    
    _mesa_set_add(ht, _mesa_pointer_hash(key), key);
    
    In the above case, there is no reason why the hash set shouldn't do the
    hashing for you.  We leave the option for you to do your own hashing if
    it's more efficient, but it's no longer needed.  Also, if you do do your
    own hashing, the hash set will assert that your hash matches what it
    expects out of the hashing function.  This should make it harder to mess up
    your hashing.
    
    This is analygous to 94303a07
    
     where we did this for hash_table
    
    Signed-off-by: default avatarJason Ekstrand <jason.ekstrand@intel.com>
    Reviewed-by: default avatarMatt Turner <mattst88@gmail.com>
    Reviewed-by: default avatarEric Anholt <eric@anholt.net>
    153b8b35