diff options
author | Michael Mann <mmann78@netscape.net> | 2017-01-02 16:24:41 -0500 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-01-02 23:16:34 +0000 |
commit | ab075d356342b1f652ec56cf178104e16f68f4dd (patch) | |
tree | 50e6a5b7e65c2868cac0b42c6fac7f8f08e19250 /epan/srt_table.c | |
parent | c950ebdd0fe3938c4e8087ef1bce6d365d9de1f6 (diff) |
Use g_slist_find_custom instead of g_slist_nth when just looking for item in list.
Change-Id: Ida3c5d5826f0ca01a25052a67f1460ff4686008f
Reviewed-on: https://code.wireshark.org/review/19513
Petri-Dish: Michael Mann <mmann78@netscape.net>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/srt_table.c')
-rw-r--r-- | epan/srt_table.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/epan/srt_table.c b/epan/srt_table.c index 2a583df5d3..63d58cca20 100644 --- a/epan/srt_table.c +++ b/epan/srt_table.c @@ -139,19 +139,24 @@ void reset_srt_table(GArray* srt_array, srt_gui_reset_cb gui_callback, void *cal static GSList *registered_srt_tables = NULL; +static gint +find_matching_srt(gconstpointer arg1, gconstpointer arg2) +{ + register_srt_t *srt = (register_srt_t*)arg1; + const gchar *name = (const gchar *)arg2; + + return strcmp(proto_get_protocol_filter_name(srt->proto_id), name); +} + register_srt_t* get_srt_table_by_name(const char* name) { - guint i, size = g_slist_length(registered_srt_tables); - register_srt_t* srt; - GSList *slist; + GSList *found_srt; - for (i = 0; i < size; i++) { - slist = g_slist_nth(registered_srt_tables, i); - srt = (register_srt_t*)slist->data; + found_srt = g_slist_find_custom(registered_srt_tables, + (gpointer)name, find_matching_srt); - if (strcmp(name, proto_get_protocol_filter_name(srt->proto_id)) == 0) - return srt; - } + if (found_srt) + return (register_srt_t*)found_srt->data; return NULL; } |