From 89c4ef5873a8949a6986cc450d61fbaf707f7654 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Mon, 10 Mar 2014 15:15:37 +0100 Subject: [PATCH] a11y: Don't allocate a list just for counting widgets in GtkContainerAccessible It's more straightforward if counting through gtk_container_foreach(). --- gtk/a11y/gtkcontaineraccessible.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/gtk/a11y/gtkcontaineraccessible.c b/gtk/a11y/gtkcontaineraccessible.c index 3db0165b2b..98e5554319 100644 --- a/gtk/a11y/gtkcontaineraccessible.c +++ b/gtk/a11y/gtkcontaineraccessible.c @@ -28,21 +28,24 @@ struct _GtkContainerAccessiblePrivate G_DEFINE_TYPE_WITH_PRIVATE (GtkContainerAccessible, gtk_container_accessible, GTK_TYPE_WIDGET_ACCESSIBLE) +static void +count_widget (GtkWidget *widget, + gint *count) +{ + (*count)++; +} + static gint gtk_container_accessible_get_n_children (AtkObject* obj) { GtkWidget *widget; - GList *children; gint count = 0; widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj)); if (widget == NULL) return 0; - children = gtk_container_get_children (GTK_CONTAINER (widget)); - count = g_list_length (children); - g_list_free (children); - + gtk_container_foreach (GTK_CONTAINER (widget), (GtkCallback) count_widget, &count); return count; }