aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-iuup.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2017-02-01 23:13:42 -0500
committerMichael Mann <mmann78@netscape.net>2017-02-02 13:46:03 +0000
commit577d21e35c1ca19e245014ea2b65d09709c9cca3 (patch)
tree91d63807f33f05a4970b9fe769dbec7040b904e0 /epan/dissectors/packet-iuup.c
parent36892d8a4ca2f6019dc00b0f2540097499da2e11 (diff)
GHashtable -> wmem_map conversions
Many of the register_init_routine/register_cleanup_routine functions are for initializing and cleaning up a GHashtable. wmem_map_new_autoreset can do that automatically, so convert many of the simple cases. Change-Id: I93e1f435845fd5a5e5286487e9f0092fae052f3e Reviewed-on: https://code.wireshark.org/review/19912 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Dario Lombardo <lomato@gmail.com> Tested-by: Dario Lombardo <lomato@gmail.com> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-iuup.c')
-rw-r--r--epan/dissectors/packet-iuup.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/epan/dissectors/packet-iuup.c b/epan/dissectors/packet-iuup.c
index 370be8afbc..348f2b8f4a 100644
--- a/epan/dissectors/packet-iuup.c
+++ b/epan/dissectors/packet-iuup.c
@@ -155,7 +155,7 @@ static expert_field ei_iuup_time_align = EI_INIT;
static expert_field ei_iuup_procedure_indicator = EI_INIT;
static expert_field ei_iuup_pdu_type = EI_INIT;
-static GHashTable* circuits = NULL;
+static wmem_map_t* circuits = NULL;
static dissector_handle_t iuup_handle;
@@ -364,7 +364,7 @@ static void dissect_iuup_payload(tvbuff_t* tvb, packet_info* pinfo, proto_tree*
if ( ! dissect_fields ) {
return;
} else if ( ! circuit_id
- || ! ( iuup_circuit = (iuup_circuit_t *)g_hash_table_lookup(circuits,GUINT_TO_POINTER(circuit_id)) ) ) {
+ || ! ( iuup_circuit = (iuup_circuit_t *)wmem_map_lookup(circuits,GUINT_TO_POINTER(circuit_id)) ) ) {
expert_add_info(pinfo, pi, &ei_iuup_payload_undecoded);
return;
}
@@ -482,10 +482,10 @@ static void dissect_iuup_init(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tre
iuup_circuit_t* iuup_circuit = NULL;
if (circuit_id) {
- iuup_circuit = (iuup_circuit_t *)g_hash_table_lookup(circuits,GUINT_TO_POINTER(circuit_id));
+ iuup_circuit = (iuup_circuit_t *)wmem_map_lookup(circuits,GUINT_TO_POINTER(circuit_id));
if (iuup_circuit) {
- g_hash_table_remove(circuits,GUINT_TO_POINTER(circuit_id));
+ wmem_map_remove(circuits,GUINT_TO_POINTER(circuit_id));
}
iuup_circuit = wmem_new0(wmem_file_scope(), iuup_circuit_t);
@@ -499,7 +499,7 @@ static void dissect_iuup_init(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tre
iuup_circuit->last_rfci = NULL;
if (circuit_id) {
- g_hash_table_insert(circuits,GUINT_TO_POINTER(iuup_circuit->id),iuup_circuit);
+ wmem_map_insert(circuits,GUINT_TO_POINTER(iuup_circuit->id),iuup_circuit);
}
if (tree) {
@@ -834,14 +834,6 @@ static int find_iuup(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void*
return tvb_captured_length(tvb);
}
-static void init_iuup(void) {
- circuits = g_hash_table_new(g_direct_hash,g_direct_equal);
-}
-
-static void cleanup_iuup(void) {
- g_hash_table_destroy(circuits);
-}
-
void proto_reg_handoff_iuup(void) {
static gboolean iuup_prefs_initialized = FALSE;
@@ -997,8 +989,7 @@ void proto_register_iuup(void) {
iuup_handle = register_dissector("iuup", dissect_iuup, proto_iuup);
register_dissector("find_iuup", find_iuup, proto_iuup);
- register_init_routine(&init_iuup);
- register_cleanup_routine(&cleanup_iuup);
+ circuits = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), g_direct_hash, g_direct_equal);
iuup_module = prefs_register_protocol(proto_iuup, proto_reg_handoff_iuup);