diff options
Diffstat (limited to 'epan/dissectors/packet-pvfs2.c')
-rw-r--r-- | epan/dissectors/packet-pvfs2.c | 22 |
1 files changed, 4 insertions, 18 deletions
diff --git a/epan/dissectors/packet-pvfs2.c b/epan/dissectors/packet-pvfs2.c index e5b23ece35..ce327e0949 100644 --- a/epan/dissectors/packet-pvfs2.c +++ b/epan/dissectors/packet-pvfs2.c @@ -2874,7 +2874,7 @@ dissect_pvfs2_response(tvbuff_t *tvb, proto_tree *tree, int offset, return offset; } -static GHashTable *pvfs2_io_tracking_value_table = NULL; +static wmem_map_t *pvfs2_io_tracking_value_table = NULL; typedef struct pvfs2_io_tracking_key { @@ -2906,19 +2906,6 @@ pvfs2_io_tracking_hash(gconstpointer k) return (guint) ((key->tag >> 32) ^ ((guint32) key->tag)); } -static void -pvfs2_io_tracking_init(void) -{ - pvfs2_io_tracking_value_table = g_hash_table_new(pvfs2_io_tracking_hash, - pvfs2_io_tracking_equal); -} - -static void -pvfs2_io_tracking_cleanup(void) -{ - g_hash_table_destroy(pvfs2_io_tracking_value_table); -} - static pvfs2_io_tracking_value_t * pvfs2_io_tracking_new_with_tag(guint64 tag, guint32 num) { @@ -2930,7 +2917,7 @@ pvfs2_io_tracking_new_with_tag(guint64 tag, guint32 num) value = wmem_new0(wmem_file_scope(), pvfs2_io_tracking_value_t); - g_hash_table_insert(pvfs2_io_tracking_value_table, newkey, value); + wmem_map_insert(pvfs2_io_tracking_value_table, newkey, value); value->request_frame_num = num; @@ -2993,7 +2980,7 @@ dissect_pvfs_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree, memset(&key, 0, sizeof(key)); key.tag = tag; - val = (pvfs2_io_tracking_value_t *)g_hash_table_lookup(pvfs2_io_tracking_value_table, &key); + val = (pvfs2_io_tracking_value_t *)wmem_map_lookup(pvfs2_io_tracking_value_table, &key); /* If this frame contains a known PVFS_SERV_IO tag, track it */ if (val && !pinfo->fd->flags.visited) @@ -3606,8 +3593,7 @@ proto_register_pvfs(void) expert_pvfs = expert_register_protocol(proto_pvfs); expert_register_field_array(expert_pvfs, ei, array_length(ei)); - register_init_routine(pvfs2_io_tracking_init); - register_cleanup_routine(pvfs2_io_tracking_cleanup); + pvfs2_io_tracking_value_table = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), pvfs2_io_tracking_hash, pvfs2_io_tracking_equal); pvfs_module = prefs_register_protocol(proto_pvfs, NULL); prefs_register_bool_preference(pvfs_module, "desegment", |