From db17324d825ed1a762f6ab2675ad287b994119b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Sun, 24 Apr 2016 10:32:55 +0200 Subject: GtkLabel: Don't manually iterate over link list There are various functions to access links based on their index for a11y. We can spare quite a few lines of code by just using g_list_nth_data instead of iterating over the list ourselves. https://bugzilla.gnome.org/show_bug.cgi?id=765496 --- gtk/gtklabel.c | 51 ++++++++++++++++----------------------------------- 1 file changed, 16 insertions(+), 35 deletions(-) diff --git a/gtk/gtklabel.c b/gtk/gtklabel.c index a51d71f451..caf031c46d 100644 --- a/gtk/gtklabel.c +++ b/gtk/gtklabel.c @@ -7048,19 +7048,13 @@ _gtk_label_get_link_uri (GtkLabel *label, gint idx) { GtkLabelPrivate *priv = label->priv; - gint i; - GList *l; - GtkLabelLink *link; if (priv->select_info) - for (l = priv->select_info->links, i = 0; l; l = l->next, i++) - { - if (i == idx) - { - link = l->data; - return link->uri; - } - } + { + GtkLabelLink *link = g_list_nth_data (priv->select_info->links, idx); + if (link) + return link->uri; + } return NULL; } @@ -7113,24 +7107,18 @@ _gtk_label_get_link_at (GtkLabel *label, } void -_gtk_label_activate_link (GtkLabel *label, +_gtk_label_activate_link (GtkLabel *label, gint idx) { GtkLabelPrivate *priv = label->priv; - gint i; - GList *l; - GtkLabelLink *link; if (priv->select_info) - for (l = priv->select_info->links, i = 0; l; l = l->next, i++) - { - if (i == idx) - { - link = l->data; - emit_activate_link (label, link); - return; - } - } + { + GtkLabelLink *link = g_list_nth_data (priv->select_info->links, idx); + + if (link) + emit_activate_link (label, link); + } } gboolean @@ -7138,19 +7126,12 @@ _gtk_label_get_link_visited (GtkLabel *label, gint idx) { GtkLabelPrivate *priv = label->priv; - gint i; - GList *l; - GtkLabelLink *link; if (priv->select_info) - for (l = priv->select_info->links, i = 0; l; l = l->next, i++) - { - if (i == idx) - { - link = l->data; - return link->visited; - } - } + { + GtkLabelLink *link = g_list_nth_data (priv->select_info->links, idx); + return link ? link->visited : FALSE; + } return FALSE; } -- cgit v1.2.1