summaryrefslogtreecommitdiff
path: root/epan/dissectors/packet-ansi_tcap.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2017-01-28 22:29:32 -0500
committerMichael Mann <mmann78@netscape.net>2017-01-30 02:25:24 +0000
commit9365fd3d3a4cdac07d70bd77f7a42f3260b33b5e (patch)
tree934046830769d5f32b51cabd240e3ed40e07a217 /epan/dissectors/packet-ansi_tcap.c
parent984d78da13608b7cba3cd8144d1285b33277b0d3 (diff)
downloadwireshark-9365fd3d3a4cdac07d70bd77f7a42f3260b33b5e.tar.gz
Convert GHashTable -> wmem_map_t for ASN.1 disseectors
Change-Id: Id749c41947c6300f2c82ed947352c336f9e45b72 Reviewed-on: https://code.wireshark.org/review/19838 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-ansi_tcap.c')
-rw-r--r--epan/dissectors/packet-ansi_tcap.c30
1 files changed, 8 insertions, 22 deletions
diff --git a/epan/dissectors/packet-ansi_tcap.c b/epan/dissectors/packet-ansi_tcap.c
index 4a79793ee8..753cb18e6b 100644
--- a/epan/dissectors/packet-ansi_tcap.c
+++ b/epan/dissectors/packet-ansi_tcap.c
@@ -237,20 +237,7 @@ struct ansi_tcap_invokedata_t {
gint32 OperationCode_national;
};
-static GHashTable *TransactionId_table=NULL;
-
-static void
-ansi_tcap_init(void)
-{
- TransactionId_table = g_hash_table_new(g_str_hash, g_str_equal);
-}
-
-static void
-ansi_tcap_cleanup(void)
-{
- /* Destroy any existing memory chunks / hashes. */
- g_hash_table_destroy(TransactionId_table);
-}
+static wmem_map_t *TransactionId_table=NULL;
/* Store Invoke information needed for the corresponding reply */
static void
@@ -280,7 +267,7 @@ save_invoke_data(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb _U_){
}
/* If the entry allready exists don't owervrite it */
- ansi_tcap_saved_invokedata = (struct ansi_tcap_invokedata_t *)g_hash_table_lookup(TransactionId_table,buf);
+ ansi_tcap_saved_invokedata = (struct ansi_tcap_invokedata_t *)wmem_map_lookup(TransactionId_table,buf);
if(ansi_tcap_saved_invokedata)
return;
@@ -289,7 +276,7 @@ save_invoke_data(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb _U_){
ansi_tcap_saved_invokedata->OperationCode_national = ansi_tcap_private.d.OperationCode_national;
ansi_tcap_saved_invokedata->OperationCode_private = ansi_tcap_private.d.OperationCode_private;
- g_hash_table_insert(TransactionId_table,
+ wmem_map_insert(TransactionId_table,
wmem_strdup(wmem_file_scope(), buf),
ansi_tcap_saved_invokedata);
/*
@@ -328,7 +315,7 @@ find_saved_invokedata(packet_info *pinfo, proto_tree *tree _U_, tvbuff_t *tvb _U
break;
}
- ansi_tcap_saved_invokedata = (struct ansi_tcap_invokedata_t *)g_hash_table_lookup(TransactionId_table, buf);
+ ansi_tcap_saved_invokedata = (struct ansi_tcap_invokedata_t *)wmem_map_lookup(TransactionId_table, buf);
if(ansi_tcap_saved_invokedata){
ansi_tcap_private.d.OperationCode = ansi_tcap_saved_invokedata->OperationCode;
ansi_tcap_private.d.OperationCode_national = ansi_tcap_saved_invokedata->OperationCode_national;
@@ -1388,7 +1375,7 @@ dissect_ansi_tcap_PackageType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int
/*--- End of included file: packet-ansi_tcap-fn.c ---*/
-#line 331 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 318 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
@@ -1732,7 +1719,7 @@ proto_register_ansi_tcap(void)
NULL, HFILL }},
/*--- End of included file: packet-ansi_tcap-hfarr.c ---*/
-#line 466 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 453 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
};
/* Setup protocol subtree array */
@@ -1770,7 +1757,7 @@ proto_register_ansi_tcap(void)
&ett_ansi_tcap_T_paramSet,
/*--- End of included file: packet-ansi_tcap-ettarr.c ---*/
-#line 477 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
+#line 464 "./asn1/ansi_tcap/packet-ansi_tcap-template.c"
};
static ei_register_info ei[] = {
@@ -1805,6 +1792,5 @@ proto_register_ansi_tcap(void)
"Type of matching invoke/response, risk of mismatch if loose matching chosen",
&ansi_tcap_response_matching_type, ansi_tcap_response_matching_type_values, FALSE);
- register_init_routine(&ansi_tcap_init);
- register_cleanup_routine(&ansi_tcap_cleanup);
+ TransactionId_table = wmem_map_new_autoreset(wmem_epan_scope(), wmem_file_scope(), wmem_str_hash, g_str_equal);
}