Jason Ekstrand <ja...@jlekstrand.net> writes:

> Previously, the hash_table API required the user to do all of the hashing
> of keys as it passed them in.  Since the hashing function is intrinsicly
> tied to the comparison function, it makes sense for the hash table 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_hash_table_insert(ht, _mesa_pointer_hash(key), key, data);
>
> In the above case, there is no reason why the hash table 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 table will assert that your hash matches what it
> expects out of the hashing function.  This should make it harder to mess up
> your hashing.

I went to go port this change to the upstream repo, and found a commit
laying around from cworth that did the same thing.  He called the
renamed functions "_pre_hashed", and included sets as well.  I think I
prefer that name slightly?  What do you think?  I've pushed his change
to the upstream (git+ssh://people.freedesktop.org/~anholt/hash_table).

It's a really good idea, though, and I'm sorry I hadn't pushed the
change and propagated it to Mesa already. :(

Attachment: signature.asc
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to