aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-folder-tree-model.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/em-folder-tree-model.c')
-rw-r--r--mail/em-folder-tree-model.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c
index ce6e15a851..eb6191199e 100644
--- a/mail/em-folder-tree-model.c
+++ b/mail/em-folder-tree-model.c
@@ -448,6 +448,10 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model, GtkTreeIter *ite
const char *name;
guint32 flags;
+ /* make sure we don't already know about it? */
+ if (g_hash_table_lookup (si->full_hash, fi->full_name))
+ return;
+
if (!fully_loaded)
load = fi->child == NULL && !(fi->flags & (CAMEL_FOLDER_NOCHILDREN | CAMEL_FOLDER_NOINFERIORS));
@@ -878,8 +882,9 @@ em_folder_tree_model_remove_store_info (EMFolderTreeModel *model, CamelStore *st
if (!(si = g_hash_table_lookup (model->store_hash, store)))
return;
- g_hash_table_remove (model->store_hash, si->store);
g_hash_table_remove (model->account_hash, si->account);
+ /* store_hash owns and frees the si structure, thus free it after done with it */
+ g_hash_table_remove (model->store_hash, si->store);
}