wireshark/epan/wmem
Evan Huus 9ba4c6e091 Hash map implementation for wmem.
This has two expected uses:
- Many current users of wmem_tree don't actually need the predecessor lookup
  it provides (the lookup_le function family). A hash map provides straight
  insertion and lookup much more efficiently than a wmem_tree when predecessor
  lookup isn't needed.

- Many current users of glib's hash table and hash functions use untrusted data
  for keys, making them vulnerable to algorithmic complexity attacks. Care has
  been taken to make this implementation secure against such attacks, so it
  should be used whenever data is untrusted.

In my benchmarks it is measurably slower than GHashTable, but not excessively
so. Given the additional security it provides this seems like a reasonable
trade-off (and it is still faster than a wmem_tree).

Change-Id: I2d67a0d06029f14c153eaa42d5cfc774aefd9918
Reviewed-on: https://code.wireshark.org/review/1272
Reviewed-by: Evan Huus <eapache@gmail.com>
2014-04-23 12:42:26 +00:00
..
Makefile.am Continue to remove $Id$ from top of file 2014-03-31 18:48:06 +00:00
Makefile.common Hash map implementation for wmem. 2014-04-23 12:42:26 +00:00
Makefile.nmake Continue to remove $Id$ from top of file 2014-03-31 18:48:06 +00:00
wmem.h Hash map implementation for wmem. 2014-04-23 12:42:26 +00:00
wmem_allocator.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_allocator_block.c Fix memory-alignment in the block allocator. 2014-03-04 17:09:40 +00:00
wmem_allocator_block.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_allocator_simple.c Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_allocator_simple.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_allocator_strict.c Much faster implementation of 'strict' allocator. 2014-04-22 06:15:21 +00:00
wmem_allocator_strict.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_array.c Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_array.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_core.c Hash map implementation for wmem. 2014-04-23 12:42:26 +00:00
wmem_core.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_list.c Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_list.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_map.c Hash map implementation for wmem. 2014-04-23 12:42:26 +00:00
wmem_map.h Hash map implementation for wmem. 2014-04-23 12:42:26 +00:00
wmem_map_int.h Hash map implementation for wmem. 2014-04-23 12:42:26 +00:00
wmem_miscutl.c Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_miscutl.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_queue.h Fix warning when generate documentation (doxygen) 2014-04-14 20:18:29 +00:00
wmem_scopes.c Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_scopes.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_stack.c Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_stack.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_strbuf.c Inlining wmem_strbuf_grow seems to give better performance. 2014-03-31 15:20:08 +00:00
wmem_strbuf.h Implement finalize() method for wmem strbuf. 2014-03-29 12:11:21 +00:00
wmem_strutl.c Introduce wmem_ascii_strdown() 2014-03-25 16:10:43 +00:00
wmem_strutl.h Fix warning when build with -Wdocumentation 2014-04-15 14:40:05 +00:00
wmem_test.c Hash map implementation for wmem. 2014-04-23 12:42:26 +00:00
wmem_tree.c Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_tree.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_user_cb.c Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_user_cb.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00
wmem_user_cb_int.h Remove all $Id$ from top of file 2014-03-04 14:27:33 +00:00