diff options
author | JP Rosevear <jpr@ximian.com> | 2001-05-12 03:57:15 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2001-05-12 03:57:15 +0800 |
commit | e3efaa319aabdfe6b3329fae1b9cee8a0ea877f3 (patch) | |
tree | 74dbe6e0a3ac5c9e6559d9595f65de6cab8cb896 /mail/mail-local.c | |
parent | 6febeab3270c35664cc3938d4f89b9c292550040 (diff) | |
download | gsoc2013-evolution-e3efaa319aabdfe6b3329fae1b9cee8a0ea877f3.tar.gz gsoc2013-evolution-e3efaa319aabdfe6b3329fae1b9cee8a0ea877f3.tar.zst gsoc2013-evolution-e3efaa319aabdfe6b3329fae1b9cee8a0ea877f3.zip |
add proto
2001-05-11 JP Rosevear <jpr@ximian.com>
* mail-importer.h: add proto
* mail-importer.c (mail_importer_uninit): release and unref the
local storage
* mail-local.c (mail_local_store_finalize): use
bonobo_object_release_unref rather than doing Bonobo_Unknow_unref
and a corba release
(register_folder_registered): "sink" the local_store ref to
prevent circular ref
(mail_local_storage_shutdown): unref the local store
* mail-local.h: new proto
* component-factory.c (owner_unset_cb): uninit the importer and
shutdown the local storage
svn path=/trunk/; revision=9768
Diffstat (limited to 'mail/mail-local.c')
-rw-r--r-- | mail/mail-local.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/mail/mail-local.c b/mail/mail-local.c index 5c27fb0e0a..71c2c4919b 100644 --- a/mail/mail-local.c +++ b/mail/mail-local.c @@ -285,10 +285,8 @@ mail_local_store_finalize (gpointer object) CORBA_Environment ev; CORBA_exception_init (&ev); - if (!CORBA_Object_is_nil (local_store->corba_local_storage, &ev)) { - Bonobo_Unknown_unref (local_store->corba_local_storage, &ev); - CORBA_Object_release (local_store->corba_local_storage, &ev); - } + if (!CORBA_Object_is_nil (local_store->corba_local_storage, &ev)) + bonobo_object_release_unref (local_store->corba_local_storage, &ev); CORBA_exception_free (&ev); if (local_store->local_storage_listener) @@ -564,6 +562,8 @@ register_folder_registered(struct _mail_msg *mm) if (local_folder->folder) { g_hash_table_insert (local_folder->local_store->folders, local_folder->uri + 8, local_folder); + /* Remove the circular ref once the local store knows aboutthe folder */ + camel_object_unref ((CamelObject *)local_folder->local_store); /* add the folder to the vfolder lists FIXME: merge stuff above with this */ vfolder_register_source(local_folder->folder); @@ -732,6 +732,11 @@ mail_local_storage_startup (EvolutionShellClient *shellclient, CORBA_exception_free (&ev); } +void +mail_local_storage_shutdown (void) +{ + camel_object_unref (CAMEL_OBJECT (local_store)); +} /* Local folder reconfiguration stuff */ |