diff options
author | Michael Mann <mmann78@netscape.net> | 2017-01-28 22:29:32 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-01-30 02:25:24 +0000 |
commit | 9365fd3d3a4cdac07d70bd77f7a42f3260b33b5e (patch) | |
tree | 934046830769d5f32b51cabd240e3ed40e07a217 /epan/dissectors/packet-ansi_tcap.c | |
parent | 984d78da13608b7cba3cd8144d1285b33277b0d3 (diff) | |
download | wireshark-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.c | 30 |
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); } |