From ae5590f88d2a2a7097d3f47b09ab96a9c2059a05 Mon Sep 17 00:00:00 2001 From: 8 Date: Fri, 19 Oct 2001 00:45:02 +0000 Subject: Added remove flag - its not adduri, its removeuri, its less typing than 2001-10-18 * mail-vfolder.c (vfolder_adduri): Added remove flag - its not adduri, its removeuri, its less typing than creating a removeuri. (vfolder_adduri_do): Implement the remove flag. (mail_vfolder_remove_uri): Changed to mail_vfolder_delte_uri, to indicate its actually been deleted. (mail_vfolder_add_uri): Added remove flag. (rule_changed): When adding existing folders to a new rule, strdup the list data. * mail-folder-cache.c (store_finalised): Unhook from all events when done. (mail_note_store_remove): Remove a store from being noted. (free_folder_info): Also if we have a folder, unhook all events. Also remove the uri from vfolders. (mail_note_folder): Remove warning about adding folders to stores that aren't added yet - we might actually be removing the store. * component-factory.c (mail_remove_storage): Call mail_note_store_remove when we remove the storage. svn path=/trunk/; revision=13782 --- mail/component-factory.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'mail/component-factory.c') diff --git a/mail/component-factory.c b/mail/component-factory.c index 52f249b840..64e92101a9 100644 --- a/mail/component-factory.c +++ b/mail/component-factory.c @@ -130,11 +130,8 @@ storage_activate (BonoboControl *control, gboolean activate, camel_exception_clear (&ex); storage = g_hash_table_lookup (storages_hash, store); - if (storage && - !gtk_object_get_data (GTK_OBJECT (storage), "connected")) { - mail_note_store (CAMEL_STORE(store), storage, - CORBA_OBJECT_NIL, NULL, NULL); - } + if (storage && !gtk_object_get_data (GTK_OBJECT (storage), "connected")) + mail_note_store (CAMEL_STORE(store), storage, CORBA_OBJECT_NIL, NULL, NULL); camel_object_unref (CAMEL_OBJECT (store)); } @@ -1207,6 +1204,10 @@ mail_remove_storage (CamelStore *store) storage = g_hash_table_lookup (storages_hash, store); g_hash_table_remove (storages_hash, store); + + /* so i guess potentially we could have a race, add a store while one + being removed. ?? */ + mail_note_store_remove(store); shell_client = evolution_shell_component_get_owner (shell_component); corba_shell = bonobo_object_corba_objref (BONOBO_OBJECT (shell_client)); -- cgit