[gnome-shell] app-system: Use g_hash_table_iter_remove
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] app-system: Use g_hash_table_iter_remove
- Date: Sun, 12 May 2013 18:45:03 +0000 (UTC)
commit 0fd6ae5330226709c00c131efcfede6a2db8d5fe
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Sat Mar 16 16:50:16 2013 -0400
app-system: Use g_hash_table_iter_remove
glib now provides an iteration-safe way to remove items from
the hash table, so use it instead of building a separate list.
https://bugzilla.gnome.org/show_bug.cgi?id=698486
src/shell-app-system.c | 12 ++----------
1 files changed, 2 insertions(+), 10 deletions(-)
---
diff --git a/src/shell-app-system.c b/src/shell-app-system.c
index 4d59fa3..03648f9 100644
--- a/src/shell-app-system.c
+++ b/src/shell-app-system.c
@@ -293,8 +293,6 @@ on_apps_tree_changed_cb (GMenuTree *tree,
GHashTable *new_apps;
GHashTableIter iter;
gpointer key, value;
- GSList *removed_apps = NULL;
- GSList *removed_node;
g_assert (tree == self->priv->apps_tree);
@@ -376,15 +374,9 @@ on_apps_tree_changed_cb (GMenuTree *tree,
const char *id = key;
if (!g_hash_table_lookup (new_apps, id))
- removed_apps = g_slist_prepend (removed_apps, (char*)id);
+ g_hash_table_iter_remove (&iter);
}
- for (removed_node = removed_apps; removed_node; removed_node = removed_node->next)
- {
- const char *id = removed_node->data;
- g_hash_table_remove (self->priv->id_to_app, id);
- }
- g_slist_free (removed_apps);
-
+
g_hash_table_destroy (new_apps);
g_signal_emit (self, signals[INSTALLED_CHANGED], 0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]