diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2011-08-10 20:40:06 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@gnome-db.org> | 2011-09-14 20:08:48 +0800 |
commit | bae19960b300c3f39ca093f51576621aacbbc84f (patch) | |
tree | 0039fadb968fdafbd352c7011c89e19bdae85d05 /mail | |
parent | a7b3039aa059814ba00c28f84c9372dcbdfb9bbf (diff) | |
download | gsoc2013-evolution-bae19960b300c3f39ca093f51576621aacbbc84f.tar gsoc2013-evolution-bae19960b300c3f39ca093f51576621aacbbc84f.tar.gz gsoc2013-evolution-bae19960b300c3f39ca093f51576621aacbbc84f.tar.bz2 gsoc2013-evolution-bae19960b300c3f39ca093f51576621aacbbc84f.tar.lz gsoc2013-evolution-bae19960b300c3f39ca093f51576621aacbbc84f.tar.xz gsoc2013-evolution-bae19960b300c3f39ca093f51576621aacbbc84f.tar.zst gsoc2013-evolution-bae19960b300c3f39ca093f51576621aacbbc84f.zip |
EMFolderTreeModel: Avoid a potential refcount crash.
Diffstat (limited to 'mail')
-rw-r--r-- | mail/em-folder-tree-model.c | 8 |
1 files changed, 7 insertions, 1 deletions
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); |