diff options
author | Evan Huus <eapache@gmail.com> | 2014-05-10 23:30:48 -0400 |
---|---|---|
committer | Evan Huus <eapache@gmail.com> | 2014-05-11 15:50:46 +0000 |
commit | 5d98ab793e98376de3c49833d340c1fd9ac8056c (patch) | |
tree | 6963c3cb3895801977c13a2d3d61d8225ff1776f /epan/addr_resolv.c | |
parent | 4ca79e9de66ffae794e7c7ca9f838f050964e35e (diff) |
Simplify IPv4 address hashing
Rather than allocate 4 bytes and use g_int_*, use GUINT_TO_POINTER and
g_direct_*. Should save some time/memory.
Change-Id: Ie03d234703f68bb76131c5ddf17953d23bb54a0d
Reviewed-on: https://code.wireshark.org/review/1582
Reviewed-by: Evan Huus <eapache@gmail.com>
Diffstat (limited to 'epan/addr_resolv.c')
-rw-r--r-- | epan/addr_resolv.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/epan/addr_resolv.c b/epan/addr_resolv.c index 6ef734702a..595b50fe80 100644 --- a/epan/addr_resolv.c +++ b/epan/addr_resolv.c @@ -854,14 +854,10 @@ host_lookup(const guint addr, gboolean *found) *found = TRUE; - tp = (hashipv4_t *)g_hash_table_lookup(ipv4_hash_table, &addr); + tp = (hashipv4_t *)g_hash_table_lookup(ipv4_hash_table, GUINT_TO_POINTER(addr)); if(tp == NULL){ - int *key; - - key = (int *)g_new(int, 1); - *key = addr; tp = new_ipv4(addr); - g_hash_table_insert(ipv4_hash_table, key, tp); + g_hash_table_insert(ipv4_hash_table, GUINT_TO_POINTER(addr), tp); }else{ if ((tp->flags & DUMMY_AND_RESOLVE_FLGS) == DUMMY_ADDRESS_ENTRY){ goto try_resolv; @@ -2575,17 +2571,13 @@ add_ipv4_name(const guint addr, const gchar *name) return; - tp = (hashipv4_t *)g_hash_table_lookup(ipv4_hash_table, &addr); + tp = (hashipv4_t *)g_hash_table_lookup(ipv4_hash_table, GUINT_TO_POINTER(addr)); if(tp){ g_strlcpy(tp->name, name, MAXNAMELEN); }else{ - int *key; - - key = (int *)g_new(int, 1); - *key = addr; tp = new_ipv4(addr); g_strlcpy(tp->name, name, MAXNAMELEN); - g_hash_table_insert(ipv4_hash_table, key, tp); + g_hash_table_insert(ipv4_hash_table, GUINT_TO_POINTER(addr), tp); } g_strlcpy(tp->name, name, MAXNAMELEN); @@ -2672,7 +2664,7 @@ host_name_lookup_init(void) ipxnet_hash_table = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, g_free); g_assert(ipv4_hash_table == NULL); - ipv4_hash_table = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, g_free); + ipv4_hash_table = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_free); g_assert(ipv6_hash_table == NULL); ipv6_hash_table = g_hash_table_new_full(ipv6_oat_hash, ipv6_equal, g_free, g_free); |