From 607176359d7642b76fe49d5f69c86dd00193c9b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ant=C3=B3nio=20Fernandes?= Date: Thu, 11 Jan 2024 13:32:51 +0000 Subject: [PATCH] view-model: Drop find() This wraps a linear search in an apparently simple call, which invites lazy coding and invites future performance regressions. This is not to say there is no need to iterate the model linearly. But when doing so, it's best to do it explicitly, in a for/while loop, to make it easy to spot performance issues. --- src/nautilus-view-model.c | 38 -------------------------------------- src/nautilus-view-model.h | 2 -- 2 files changed, 40 deletions(-) diff --git a/src/nautilus-view-model.c b/src/nautilus-view-model.c index 3df952095..66c1beb5d 100644 --- a/src/nautilus-view-model.c +++ b/src/nautilus-view-model.c @@ -554,44 +554,6 @@ nautilus_view_model_add_items (NautilusViewModel *self, } } -/** - * nautilus_view_model_find: - * - * @item: The item to find. - * - * Iterate the model linearly to find the index of @item. Avoid using in a loop. - * - * Returns: The position of the item in the list, or G_MAXUINT if not found. - */ -guint -nautilus_view_model_find (NautilusViewModel *self, - NautilusViewItem *item) -{ - guint n_items; - guint i = 0; - - n_items = g_list_model_get_n_items (G_LIST_MODEL (self->sort_model)); - while (i < n_items) - { - g_autoptr (GtkTreeListRow) row = NULL; - g_autoptr (NautilusViewItem) item_i = NULL; - - row = g_list_model_get_item (G_LIST_MODEL (self->sort_model), i); - g_warn_if_fail (GTK_IS_TREE_LIST_ROW (row)); - - item_i = gtk_tree_list_row_get_item (row); - g_warn_if_fail (NAUTILUS_IS_VIEW_ITEM (item_i)); - - if (item_i == item) - { - return i; - } - i++; - } - - return G_MAXUINT; -} - void nautilus_view_model_clear_subdirectory (NautilusViewModel *self, NautilusViewItem *item) diff --git a/src/nautilus-view-model.h b/src/nautilus-view-model.h index bc62747f4..2ab1af2cb 100644 --- a/src/nautilus-view-model.h +++ b/src/nautilus-view-model.h @@ -30,8 +30,6 @@ void nautilus_view_model_add_item (NautilusViewModel *self, NautilusViewItem *item); void nautilus_view_model_add_items (NautilusViewModel *self, GList *items); -guint nautilus_view_model_find (NautilusViewModel *self, - NautilusViewItem *item); void nautilus_view_model_clear_subdirectory (NautilusViewModel *self, NautilusViewItem *item); void nautilus_view_model_expand_as_a_tree (NautilusViewModel *self,