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-467638-current-folder.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bnc-467638-current-folder.patch of Package evolution-data-server
diff --git a/camel/providers/groupwise/camel-groupwise-store.c b/camel/providers/groupwise/camel-groupwise-store.c index 21ef627..01d8fa6 100644 --- a/camel/providers/groupwise/camel-groupwise-store.c +++ b/camel/providers/groupwise/camel-groupwise-store.c @@ -390,6 +390,12 @@ groupwise_disconnect (CamelService *service, gboolean clean, CamelException *ex) g_object_unref (groupwise_store->priv->cnc); groupwise_store->priv->cnc = NULL; } + + if (groupwise_store->current_folder) { + camel_object_unref (groupwise_store->current_folder); + groupwise_store->current_folder = NULL; + } + CAMEL_SERVICE_REC_UNLOCK (groupwise_store, connect_lock); } @@ -544,6 +550,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; return folder; } @@ -551,16 +558,17 @@ groupwise_get_folder (CamelStore *store, const char *folder_name, guint32 flags, CAMEL_SERVICE_REC_LOCK (gw_store, connect_lock); - if (!camel_groupwise_store_connected (gw_store, ex)) { - CAMEL_SERVICE_REC_UNLOCK (gw_store, connect_lock); - return NULL; - } - if (gw_store->current_folder) { camel_object_unref (gw_store->current_folder); gw_store->current_folder = NULL; } + + if (!camel_groupwise_store_connected (gw_store, ex)) { + CAMEL_SERVICE_REC_UNLOCK (gw_store, connect_lock); + return NULL; + } + if (!E_IS_GW_CONNECTION( priv->cnc)) { if (!groupwise_connect (CAMEL_SERVICE(store), ex)) { CAMEL_SERVICE_REC_UNLOCK (gw_store, connect_lock); @@ -667,8 +675,8 @@ groupwise_get_folder (CamelStore *store, const char *folder_name, guint32 flags, camel_folder_summary_save_to_db (folder->summary, ex); - gw_store->current_folder = folder; camel_object_ref (folder); + gw_store->current_folder = folder; g_free (container_id); CAMEL_SERVICE_REC_UNLOCK (gw_store, connect_lock); @@ -1294,8 +1302,10 @@ 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) + if (groupwise_store->current_folder) { camel_object_unref (groupwise_store->current_folder); + groupwise_store->current_folder = NULL; + } groupwise_forget_folder(groupwise_store,folder_name,ex); @@ -1332,6 +1342,11 @@ groupwise_rename_folder(CamelStore *store, return; } + if (groupwise_store->current_folder) { + camel_object_unref (groupwise_store->current_folder); + groupwise_store->current_folder = NULL; + } + container_id = camel_groupwise_store_container_id_lookup (groupwise_store, old_name); temp_new = strrchr (new_name, '/'); if (temp_new) @@ -1587,6 +1602,7 @@ camel_groupwise_store_init (gpointer object, gpointer klass) priv->user = NULL; priv->cnc = NULL; groupwise_store->priv = priv; + groupwise_store->current_folder = NULL; }
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