Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1:kernel-2.6.32
evolution-data-server
bnc-480091-gw_mailer_cleanup.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bnc-480091-gw_mailer_cleanup.diff of Package evolution-data-server
diff --git a/camel/providers/groupwise/camel-groupwise-folder.c b/camel/providers/groupwise/camel-groupwise-folder.c index 54fc0f8..0699e8d 100644 --- a/camel/providers/groupwise/camel-groupwise-folder.c +++ b/camel/providers/groupwise/camel-groupwise-folder.c @@ -1243,13 +1243,12 @@ groupwise_refresh_folder(CamelFolder *folder, CamelException *ex) if (!check_all && slist && g_slist_length(slist) != 0) check_all = TRUE; + if (gw_store->current_folder != folder) + groupwise_store_set_current_folder (gw_store, folder); + g_slist_free (slist); slist = NULL; - if (gw_store->current_folder != folder) { - gw_store->current_folder = folder; - } - if (check_all && !is_proxy) { EGwContainer *container; int i=0; @@ -2426,7 +2425,7 @@ groupwise_transfer_messages_to (CamelFolder *source, GPtrArray *uids, camel_folder_summary_touch (source->summary); camel_folder_summary_touch (destination->summary); - gw_store->current_folder = source; + groupwise_store_set_current_folder (gw_store, source); CAMEL_SERVICE_REC_UNLOCK (source->parent_store, connect_lock); } diff --git a/camel/providers/groupwise/camel-groupwise-store.c b/camel/providers/groupwise/camel-groupwise-store.c index 01d8fa6..1b54358 100644 --- a/camel/providers/groupwise/camel-groupwise-store.c +++ b/camel/providers/groupwise/camel-groupwise-store.c @@ -258,6 +258,26 @@ check_for_connection (CamelService *service, CamelException *ex) } +/* resets the current folder. To just free current folder, pass NULL for folder */ +void +groupwise_store_set_current_folder (CamelGroupwiseStore *groupwise_store, CamelFolder *folder) +{ + + CAMEL_SERVICE_REC_LOCK (groupwise_store, connect_lock); + + if (groupwise_store->current_folder) { + camel_object_unref (groupwise_store->current_folder); + groupwise_store->current_folder = NULL; + } + + if (folder) { + camel_object_ref (folder); + groupwise_store->current_folder = folder; + } + + CAMEL_SERVICE_REC_UNLOCK (groupwise_store, connect_lock); +} + static gboolean groupwise_connect (CamelService *service, CamelException *ex) { @@ -391,10 +411,7 @@ groupwise_disconnect (CamelService *service, gboolean clean, CamelException *ex) groupwise_store->priv->cnc = NULL; } - if (groupwise_store->current_folder) { - camel_object_unref (groupwise_store->current_folder); - groupwise_store->current_folder = NULL; - } + groupwise_store_set_current_folder (groupwise_store, NULL); CAMEL_SERVICE_REC_UNLOCK (groupwise_store, connect_lock); } @@ -549,8 +566,7 @@ groupwise_get_folder (CamelStore *store, const char *folder_name, guint32 flags, folder = groupwise_get_folder_from_disk (store, folder_name, flags, ex); if (folder) { - camel_object_ref (folder); - gw_store->current_folder = folder; + groupwise_store_set_current_folder (gw_store, folder); return folder; } @@ -558,11 +574,7 @@ groupwise_get_folder (CamelStore *store, const char *folder_name, guint32 flags, CAMEL_SERVICE_REC_LOCK (gw_store, connect_lock); - if (gw_store->current_folder) { - camel_object_unref (gw_store->current_folder); - gw_store->current_folder = NULL; - } - + groupwise_store_set_current_folder (gw_store, NULL); if (!camel_groupwise_store_connected (gw_store, ex)) { CAMEL_SERVICE_REC_UNLOCK (gw_store, connect_lock); @@ -675,8 +687,7 @@ groupwise_get_folder (CamelStore *store, const char *folder_name, guint32 flags, camel_folder_summary_save_to_db (folder->summary, ex); - camel_object_ref (folder); - gw_store->current_folder = folder; + groupwise_store_set_current_folder (gw_store, folder); g_free (container_id); CAMEL_SERVICE_REC_UNLOCK (gw_store, connect_lock); @@ -795,7 +806,7 @@ gw_store_reload_folder (CamelGroupwiseStore *gw_store, CamelFolder *folder, guin camel_folder_summary_save_to_db (folder->summary, ex); - gw_store->current_folder = folder; + groupwise_store_set_current_folder (gw_store, NULL); g_free (container_id); CAMEL_SERVICE_REC_UNLOCK (gw_store, connect_lock); @@ -1302,10 +1313,7 @@ groupwise_delete_folder(CamelStore *store, status = e_gw_connection_remove_item (priv->cnc, container, container); if (status == E_GW_CONNECTION_STATUS_OK) { - if (groupwise_store->current_folder) { - camel_object_unref (groupwise_store->current_folder); - groupwise_store->current_folder = NULL; - } + groupwise_store_set_current_folder (groupwise_store, NULL); groupwise_forget_folder(groupwise_store,folder_name,ex); @@ -1342,10 +1350,7 @@ groupwise_rename_folder(CamelStore *store, return; } - if (groupwise_store->current_folder) { - camel_object_unref (groupwise_store->current_folder); - groupwise_store->current_folder = NULL; - } + groupwise_store_set_current_folder (groupwise_store, NULL); container_id = camel_groupwise_store_container_id_lookup (groupwise_store, old_name); temp_new = strrchr (new_name, '/'); diff --git a/camel/providers/groupwise/camel-groupwise-store.h b/camel/providers/groupwise/camel-groupwise-store.h index adff131..b532b41 100644 --- a/camel/providers/groupwise/camel-groupwise-store.h +++ b/camel/providers/groupwise/camel-groupwise-store.h @@ -79,6 +79,7 @@ const char *groupwise_base_url_lookup (CamelGroupwiseStorePrivate *priv); CamelFolderInfo * create_junk_folder (CamelStore *store); gboolean camel_groupwise_store_connected (CamelGroupwiseStore *store, CamelException *ex); void gw_store_reload_folder (CamelGroupwiseStore *store, CamelFolder *folder, guint32 flags, CamelException *ex); +void groupwise_store_set_current_folder (CamelGroupwiseStore *groupwise_store, CamelFolder *folder); G_END_DECLS
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor