From bae19960b300c3f39ca093f51576621aacbbc84f Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 10 Aug 2011 08:40:06 -0400 Subject: EMFolderTreeModel: Avoid a potential refcount crash. --- mail/em-folder-tree-model.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c index eb6239e22a..bbf9dd558c 100644 --- a/mail/em-folder-tree-model.c +++ b/mail/em-folder-tree-model.c @@ -1155,8 +1155,14 @@ em_folder_tree_model_remove_folders (EMFolderTreeModel *model, gtk_tree_store_remove ((GtkTreeStore *) model, toplevel); - if (is_store) + /* Freeing the GtkTreeRowReference in the store info may finalize + * the model. Keep the model alive until the store info is fully + * removed from the hash table. */ + if (is_store) { + g_object_ref (model); g_hash_table_remove (model->priv->store_index, si->store); + g_object_unref (model); + } g_free (full_name); g_free (uri); -- cgit v1.2.3