summaryrefslogtreecommitdiff
path: root/epan/follow.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2017-01-02 16:24:41 -0500
committerMichael Mann <mmann78@netscape.net>2017-01-02 23:16:34 +0000
commitab075d356342b1f652ec56cf178104e16f68f4dd (patch)
tree50e6a5b7e65c2868cac0b42c6fac7f8f08e19250 /epan/follow.c
parentc950ebdd0fe3938c4e8087ef1bce6d365d9de1f6 (diff)
downloadwireshark-ab075d356342b1f652ec56cf178104e16f68f4dd.tar.gz
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/follow.c')
-rw-r--r--epan/follow.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/epan/follow.c b/epan/follow.c
index c7859736e3..415d3e7efc 100644
--- a/epan/follow.c
+++ b/epan/follow.c
@@ -120,19 +120,24 @@ follow_tap_func get_follow_tap_handler(register_follow_t* follower)
}
+static gint
+find_matching_follower(gconstpointer arg1, gconstpointer arg2)
+{
+ register_follow_t *follower = (register_follow_t *)arg1;
+ const gchar *name = (const gchar *)arg2;
+
+ return strcmp(proto_get_protocol_short_name(find_protocol_by_id(follower->proto_id)), name);
+}
+
register_follow_t* get_follow_by_name(const char* proto_short_name)
{
- guint i, size = g_slist_length(registered_followers);
- register_follow_t *follower;
- GSList *slist;
+ GSList *found_follower;
- for (i = 0; i < size; i++) {
- slist = g_slist_nth(registered_followers, i);
- follower = (register_follow_t*)slist->data;
+ found_follower = g_slist_find_custom(registered_followers,
+ (gpointer)proto_short_name, find_matching_follower);
- if (strcmp(proto_short_name, proto_get_protocol_short_name(find_protocol_by_id(follower->proto_id))) == 0)
- return follower;
- }
+ if (found_follower)
+ return (register_follow_t*)found_follower->data;
return NULL;
}